擅长:python、mysql、java
<p>我的建议是保持启动的简单性,每分钟都使用CRON启动的管理命令,当这超出您的需要时,请切换到分布式作业方法。如果您正确地分离了代码,这应该不会有太大的变化。在</p>
<p>如果您从一开始就要执行10万个任务,我会选择选项1,因为您可以使用celery将负载分配到多个服务器上。如果选择一个普通的cronjob设置,则需要在同一个服务器上运行所有任务,这并不能很好地扩展。设置RabbitMQ并对其进行维护比设置cronjob要复杂得多,所以尽可能推迟。在</p>
<p>对于选项2:Django扩展还有一个类似cronjob的系统,作为管理命令实现,因此您不必重新设计轮子,而且Django扩展还有许多其他很好的工具,您可能无论如何都想使用这些工具。在</p>
<p><a href="http://packages.python.org/django-extensions/jobs_scheduling.html" rel="nofollow">http://packages.python.org/django-extensions/jobs_scheduling.html</a></p>
<p>如果使用#3,请确保使用某种方法来保持守护进程的运行,如果它崩溃,则需要自动启动它的备份。<a href="http://supervisord.org" rel="nofollow">http://supervisord.org</a>是个不错的选择。在</p>