passing distributed messages. It is focused on real-time operation and it also supports scheduling. The execution units, called tasks, are executed concurrently on a single or more worker servers.
hour='*/3') # Every 3 hours. crontab(day_of_week='sunday') # Every minute on Sundays. crontab(0, 0, 0, month_of_year='*/3') # First month of every quarter. @app.periodic_task(run_every=crontab(minute=0, hour=1)) def schedule_emails(): user_ids = User.objects.values_list('id', flat=True) for user_id in user_ids: send_daily_email.delay(user_id)
Progress and job history. ◦ Task information. ◦ Graphs and statistics. ◦ Status and statistics of the workers. ◦ View tasks that are running. • Remote control: ◦ Shutdown and restart workers. ◦ Check autoscaling and pool size. ◦ Management of queues. pip install flower celery flower -A projectName --port=5555
• Complex but scalable • Distributed systems helps distributed work • Needs maintenance and monitoring • Hard to debug • Celery has a lot of cool features