python - Celery - 使用 Python 脚本中的 Redis 清除特定队列
问题描述
我知道 Celery 的命令行选项:
celery -A my_app purge -Q queue_name
但我正在寻找一种queue_name
使用 Celery 从我的 Python 应用程序中清除的方法,类似于:
def start_chunk(num_of_objs):
# clear current queue before starting here
RELEVANT CODE HERE TO PURGE queue_name
for num in num_of_objcts:
some_task.apply_async(kwargs={'num': num}, queue="queue_name")
请注意,我知道这一点:
from proj.celery import app
app.control.purge()
但据我了解,这会清除所有队列。
解决方案
我承认,要做到这一点有点困难。但是,您应该首先查看如何解决此问题的提示是 bin/purge.py (这就是我所做的)。在分析了上述文件之后,我认为应该可以使用以下方法:
from celery.app.base import Celery
from yourproject import celery_app
def purge_queue(app: Celery, queue_name: str):
with app.connection_for_write() as conn:
conn.default_channel.queue_purge(queue_name)
purge_queue(celery_app, "celery") # purge the "celery" queue
以上是更多/更少的内容celery -A yourproject.celery_app purge -Q celery
。
推荐阅读
- ios - [Firebase/Core][I-COR000022] Firebase 分析不可用
- laravel - 动作路线中未定义的变量,带有laravel的参数
- python - 使用python在列表中不规则接收
- sass - 使用 SASS 在一系列颜色中循环
- audio - 添加 PCM 音频文件 - 混合音频
- stm32 - 如何将生成的 .bin 从处理器(我正在使用的 AM5728)加载到 STM32 板的内部闪存
- node.js - 使用 express-validator 作为 websockets 的中间件
- javascript - 扁平化嵌套的 ajax 请求
- javascript - Invariant Violation:元素类型在登录页面 react-native 上无效
- eclipse - Coverage As -> JUnit Test in Eclipse Oxygen 报告 NullPointerException