分布式任务队列(例如Celery)与crontab脚本

分布式任务队列(例如Celery)与crontab脚本,第1张

分布式任务队列(例如Celery)与crontab脚本

这取决于您希望任务执行的 *** 作,是否需要分发任务以及如何管理它们。

crontab能够每N个间隔执行一次脚本。它运行,然后返回。从本质上讲,您每个时间间隔都会执行一次。您只需指挥crontab即可执行django管理命令并获得对整个django环境的访问权限,因此celery并不能真正为您提供帮助。

在消息队列的帮助下,芹菜带到桌子上的是分布式任务。许多服务器可以加入工作人员池,并且每个服务器都可以接收工作项,而不必担心双重处理。准备就绪后,也可以立即执行任务。使用cron,您的活动时间不得超过一分钟。

例如,假设您刚刚启动了一个新的Web应用程序,并且正在接收数百个注册,而这些注册需要将电子邮件发送给每个用户。发送电子邮件可能会花费较长的时间(相比),因此您决定要通过任务处理激活电子邮件。

如果您使用的是cron,则需要确保cron每一分钟都能够处理所有需要发送的电子邮件。如果您有多台服务器,则现在需要确保您没有向同一用户发送多封激活电子邮件-
您需要某种同步。

使用芹菜,您可以将任务添加到队列中。每个服务器可能有几个工作人员,因此您已经在进行cronjob之前进行了扩展。您可能还拥有多个服务器,可以扩展更多服务器。同步作为“队列”的一部分进行处理。

可以 将芹菜用作cron的替代品,但这并不是它的主要用途。它用于在分布式群集中播种异步任务。

当然,芹菜具有cron没有的很多功能。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5644479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存