我有一个执行许多自动任务的应用程序,有时会通过执行重启来打破链条,并且需要手动修复这些混乱。
有没有办法检查控制器/模型是否有正在运行的进程,只在完成后再执行重启?
由于
答案 0 :(得分:2)
如果您使用的是python,则可以使用celery之类的作业队列来执行此操作。
您可以按照以下教程并将任务添加到作业队列,并使用提供的后端获取状态和任务等待它完成。
http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html
首先使用作业队列
定义任务from celery import Celery
app = Celery('tasks', broker='amqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
然后运行芹菜工人:
celery -A tasks worker --loglevel=info
现在您可以使用作业队列运行该功能:
>>> from tasks import add
>>> result = add.delay(4, 4)
您可以通过运行以下命令等待结果:
>>> result.wait()