jjzjj

python - 与多个经纪人一起开始 celery worker

目前,我有一个带有单个redis代理的celery.pyproj/celery.pyfrom__future__importabsolute_importfromkombuimportExchange,QueuefromceleryimportCeleryapp=Celery('proj',broker='redis://myredis.com'backend='redis://myredis.com'include=['proj.tasks])if__name__=='__main__':app.start()我会开始一个worker:celerymultistartsomename

python - 与多个经纪人一起开始 celery worker

目前,我有一个带有单个redis代理的celery.pyproj/celery.pyfrom__future__importabsolute_importfromkombuimportExchange,QueuefromceleryimportCeleryapp=Celery('proj',broker='redis://myredis.com'backend='redis://myredis.com'include=['proj.tasks])if__name__=='__main__':app.start()我会开始一个worker:celerymultistartsomename

python - 如何暂停或恢复 celery 任务?

我在我的项目中有一个要求,客户可以暂停或恢复挂起的流程,而不是流程一。我正在使用网络套接字显示celery任务结果,但在暂停/恢复时我不明白如何设计代码。我想到的唯一方法是撤销暂停请求中的任务同时保留的数据撤销进程在缓存中,稍后在resumeapi中使用该缓存再次启动celery任务。通过使用这种方法,我的websocket设计流程会受到干扰,因为我通过websocket轮询了任务处理状态,当没有进程时,我发送了完成true标志关闭连接.要知道哪个任务正在处理或挂起,我添加了一个单独的任务映射表,并在执行最后一个任务时刷新该表。请帮助我将这个设计完美无缺,如果我遗漏了什么,也请指出。

python - 如何暂停或恢复 celery 任务?

我在我的项目中有一个要求,客户可以暂停或恢复挂起的流程,而不是流程一。我正在使用网络套接字显示celery任务结果,但在暂停/恢复时我不明白如何设计代码。我想到的唯一方法是撤销暂停请求中的任务同时保留的数据撤销进程在缓存中,稍后在resumeapi中使用该缓存再次启动celery任务。通过使用这种方法,我的websocket设计流程会受到干扰,因为我通过websocket轮询了任务处理状态,当没有进程时,我发送了完成true标志关闭连接.要知道哪个任务正在处理或挂起,我添加了一个单独的任务映射表,并在执行最后一个任务时刷新该表。请帮助我将这个设计完美无缺,如果我遗漏了什么,也请指出。

python - 不同 Docker 容器中不同 python 应用程序的 celery 任务

我已经阅读官方Celery的docs,DigitalOcean的tutorial然后运行得很好examples.但我无法理解我的应用程序如何像在ResqueRuby中那样进行通信。例如,我在docker容器中有主要的python应用程序,它必须为其他容器中的2个其他python应用程序生成任务。在Resque中,我的应用程序只是监听一些队列并接受任务,然后做一些工作并推回响应。 最佳答案 Celery还需要一个队列/代理来在应用程序进程和工作进程之间进行通信。参见http://docs.celeryproject.org/en/la

python - 不同 Docker 容器中不同 python 应用程序的 celery 任务

我已经阅读官方Celery的docs,DigitalOcean的tutorial然后运行得很好examples.但我无法理解我的应用程序如何像在ResqueRuby中那样进行通信。例如,我在docker容器中有主要的python应用程序,它必须为其他容器中的2个其他python应用程序生成任务。在Resque中,我的应用程序只是监听一些队列并接受任务,然后做一些工作并推回响应。 最佳答案 Celery还需要一个队列/代理来在应用程序进程和工作进程之间进行通信。参见http://docs.celeryproject.org/en/la

python - 重启redis需要很长时间

我在我的django项目中使用redis作为celery的代理。作为我的部署过程的一部分,我在最后重新启动服务,所以从redis开始的redis、celery、gunicorn(django)等。但是我遇到了redis不会关闭的问题。$sudosystemctlrestartredis$在撰写本文时,它卡在那里15分钟。journalctl显示没有条目(我假设日志已经在一夜之间轮换),systemctlstatus显示redis单元正在停用(sig-term)但没有指示它在做什么,除了:May2410:31:22stagingsystemd[1]:StoppingAdvancedkey

python - 重启redis需要很长时间

我在我的django项目中使用redis作为celery的代理。作为我的部署过程的一部分,我在最后重新启动服务,所以从redis开始的redis、celery、gunicorn(django)等。但是我遇到了redis不会关闭的问题。$sudosystemctlrestartredis$在撰写本文时,它卡在那里15分钟。journalctl显示没有条目(我假设日志已经在一夜之间轮换),systemctlstatus显示redis单元正在停用(sig-term)但没有指示它在做什么,除了:May2410:31:22stagingsystemd[1]:StoppingAdvancedkey

python - 当用户的 Flask session 结束时,如何从 redis 后端删除所有 Celery 结果?

这是一个高级问题,因为我可能只有一个设计不佳的Flask应用程序,但我目前构建了一个应用程序,在用户提交表单后,celeryworker将输入格式化为sql查询并执行该查询.现在我已经设置了一个Redis后端来保存结果,所以当任务完成时,我可以通过从Redis获取它来显示结果。但是,我不希望这些结果永远保留在Redis中,但我确实希望它们在应用程序中的整个用户session中保留,以便他们可以在session中查看先前查询的结果。我该怎么做呢?我的直觉是将单个任务ID添加到session中,当用户使用该应用程序时,在celery中使用forget()删除所有任务ID。

python - 当用户的 Flask session 结束时,如何从 redis 后端删除所有 Celery 结果?

这是一个高级问题,因为我可能只有一个设计不佳的Flask应用程序,但我目前构建了一个应用程序,在用户提交表单后,celeryworker将输入格式化为sql查询并执行该查询.现在我已经设置了一个Redis后端来保存结果,所以当任务完成时,我可以通过从Redis获取它来显示结果。但是,我不希望这些结果永远保留在Redis中,但我确实希望它们在应用程序中的整个用户session中保留,以便他们可以在session中查看先前查询的结果。我该怎么做呢?我的直觉是将单个任务ID添加到session中,当用户使用该应用程序时,在celery中使用forget()删除所有任务ID。