这取决于你想要你的任务做什么,如果你需要分配它们,以及你想如何管理它们。
crontab能够每N个间隔执行一次脚本。它运行,然后返回。基本上你会在每个时间间隔执行一次执行。你可以直接指定一个crontab来执行一个django管理命令,并且可以访问整个django环境,所以芹菜并不能真正帮助你。
芹菜带到桌子上,借助消息队列,是分配任务。许多服务器可以加入工作人员队伍,每个人都可以接收工作项目,而不用担心双重处理。一旦准备就绪,也可以执行任务。使用cron,你至少被限制在一分钟内。
举个例子,假设你刚刚推出了一个新的Web应用程序,并且你收到了数百个需要发送电子邮件给每个用户的注册信息。发送电子邮件可能需要很长时间(比较),因此您决定通过任务处理激活电子邮件。
如果您使用的是cron,您需要确保每分钟cron都能够处理所有需要发送的电子邮件。如果您有多台服务器,您现在需要确保您没有向同一用户发送多个激活电子邮件 - 您需要某种同步。
使用芹菜,您可以将任务添加到队列中。你可能每个服务器有几个工人,所以你已经在cronjob之前进行了缩放。您可能还有几台服务器,可以让您进一步扩展。同步作为“队列”的一部分进行处理。
你可以使用芹菜作为cron替代品,但这不是真正的主要用途。它用于在分布式群集中挖掘异步任务。
当然,芹菜有一个big list of features cron没有。