【发布时间】:2015-09-12 20:07:37
【问题描述】:
我想建立一个网络发布/订阅事件系统,但还需要能够异步运行任务。我曾尝试让 celery 来完成繁重的工作,但我觉得我正在尝试填充一大堆东西以使其正常工作。
我有两台机器(输入和输出),它们都可以访问 RabbitMQ。我想让一个主程序启动一个等待输入的循环(网络摄像头检测到移动)。我已经设置了 input_machine 启动 main.py ,它启动了一个 celery 任务,该任务由 input_machine 上的工作人员监控,该任务被分配到“输入”队列。这个任务只是运行一个 while True 循环,直到检测到一些输入,然后它调用另一个名为('project.entered_room' 什么都不做)芹菜任务到“输出”队列。
同时在 output_machine 上,我有一个 celery 实例正在监视“输出”队列,其中包含一个名为 ('project.entered_room' 响应有人进入房间的任务)。
因此,当在 input_machine 上检测到输入时,任务会在输出机器上运行。我可以让它工作,但遇到很多导入问题和其他令人头疼的问题。有没有更简单的方法来实现这一点?我做错了?我是否使用了错误的工具?
我研究了许多不同的框架,包括电路和扭曲。 Twisted 非常复杂,我觉得我会用手提钻敲钉子。
【问题讨论】:
标签: python celery publish-subscribe