Kis*_*war 2 python django celery django-celery
我读到消息队列优于subprocess.Popen(). 据说消息队列是可扩展的解决方案。我想了解这是怎么回事。
我只是想列出消息队列的好处subeprocess.Popen(),以便我可以说服我的上级使用消息队列而不是subprocess
这些是完全独立且不同的事情。
subprocess.Popen()只是为您传递给它的特定命令生成(通过调用fork和)新的操作系统进程。exec因此,当您需要在单独的进程中执行某些操作并(可选)获取执行结果(通过管道,以某种尴尬的方式)时,它非常适合。
队列(如 Celery 或 ActiveJob)为您提供了两个主要功能:
因此,即使在分布式环境中,也可能有很多工作人员。它不仅为您提供垂直可扩展性,而且还为您提供水平可扩展性(通过将您的工作人员保持在不同的机器上)。
另一方面,队列更适合异步处理(即需要稍后执行且现在不需要结果的作业)并且比简单的进程生成更重量级。
因此,如果您有简单的一次性作业只是要在主流程之外的某个地方执行 - 请使用流程。
如果您有一堆需要异步执行的不同作业,并且您希望能够扩展该流程,那么您应该使用队列,它们会让生活变得更轻松。
| 归档时间: | 
 | 
| 查看次数: | 1807 次 | 
| 最近记录: |