Python 芹菜中持久的长时间运行任务
我正在开发一个基于Python的系统,将长时间运行的任务排队给工作人员 这些任务来自生成“令牌”的外部服务,但一旦基于该令牌创建了这些任务,它们就应该持续运行,并且只有在代码明确删除时才会停止。Python 芹菜中持久的长时间运行任务,python,rabbitmq,task,celery,long-running-processes,Python,Rabbitmq,Task,Celery,Long Running Processes,我正在开发一个基于Python的系统,将长时间运行的任务排队给工作人员 这些任务来自生成“令牌”的外部服务,但一旦基于该令牌创建了这些任务,它们就应该持续运行,并且只有在代码明确删除时才会停止。 该任务启动WebSocket并在其上循环。如果套接字已关闭,它将重新打开它。基本上,这项任务不应该得出结论 我设计此解决方案的目标是: 当优雅地重新启动工作程序(例如加载新代码)时,任务应重新添加到队列中,并由某个工作程序拾取 当发生不正常关机时,也应该发生同样的情况 两个工人不应该以同样的方式工作 其
该任务启动WebSocket并在其上循环。如果套接字已关闭,它将重新打开它。基本上,这项任务不应该得出结论 我设计此解决方案的目标是:
但是,是的,总的来说,你可以用芹菜来做。是否有更好的技术。。。这超出了本网站的范围。我在“进程令牌”任务中使用的
acks\u late=True,track\u start=True
。我将在应用程序级别设置保护措施,以确保在同一令牌上不会有两个任务。由于ACK\u延迟和track\u启动,我的流程令牌任务将达到“失败”状态,原因是workerLosterError('Worker过早退出:信号15(SIGTERM)。”,
这还不算太糟,事实上,因为它还在排队。不,我只需要另一个工人来接。