Why would running scheduled tasks with Celery be preferable over crontab?

后端 未结 2 514
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-12 22:03

Considering Celery is already a part of the stack to run task queues (i.e. it is not being added just for running crons, that seems an overkill IMHO ).

How can its \

相关标签:
2条回答
  • 2020-12-12 22:38

    I've been using cron for a production website, and have switched to celery on a current project. I'm far more into celery than cron, here is why:

    • Celery + Celerybeat has finer granularity than cron. Cron cannot run more than once a minute, while celery can (I have a task run every 90 seconds which checks an email queue to send messages, and another which cleans the online users list).
    • A cron line has to call a script or a unique command, with absolute path and user info. Celery calls python functions, no need to write more than code.
    • With celery, to deploy to another machine, you generally just have to pull/copy your code, which is generally in one place. Deploying with cron would need more work (you can automate it but...)
    • I really find celery better suited than cron for routine cleaning (cache, database), and in general, for short tasks. Dumping a database is more a work for cron, however, because you don't want clutter the event queue with too long tasks.
    • Not the least, Celery is easily distributed across machines.
    0 讨论(0)
  • 2020-12-12 22:41

    Celery is indicated any time you need to coordinate jobs across multiple machines, ensure jobs run even as machines are added or dropped from a workgroup, have the ability to set expiration times for jobs, define multi-step jobs with graph-style rather than linear dependency flow, or have a single repository of scheduling logic that operates the same across multiple operating systems and versions.

    0 讨论(0)
提交回复
热议问题