Skip to main content
 首页 » 编程设计

python之无法看到在 celery-rabbitMQ 组合中执行的任务的输出消息

2024年11月24日27lovecherry

我正在尝试将 celery 和 rabbitMQ 组合用于异步任务调度,下面是我在 Pycharm IDE 上尝试的示例程序....一切似乎都在工作,但我看不到任务的返回值。

我也在监控rabbitMQ管理控制台,但是还是看不到任务的返回值。

我不明白我哪里出错了,这是我第一次尝试 celery 和 RabbitMQ

我创建了一个包含 2 个示例任务(分配了适当的装饰器)并为每个任务返回一个值的 tasks.py 文件。

我还启动了 RabbitMQ 服务器(使用 {rabbitmq-server start} 命令)。

然后我启动了 celery worker,使用命令:{celery -A tasks --loglevel=info}

现在,当我尝试使用 delay() 方法执行这些任务时,命令 ({reverse.delay('andy')}) 正在运行,我得到了类似这样的东西,但我看不到返回值。

from celery import  Celery 
 
app = Celery('tasks', broker= 'amqp://localhost//', backend='rpc://') 
 
@app.task 
def reverse(string): 
    return string[::-1] 
 
@app.task 
def add(x, y): 
    return x + y 

请您参考如下方法:

好吧,我已经弄清楚了这个问题...它表明最新版本的 celery 与 Windows 不兼容。为了解决这个问题,我安装了“eventlet”包,剩下的由它来处理。

需要注意的是,我们需要使用 eventlet 支持启动 celery worker,PFB 命令:

celery -A <module_name> worker -loglevel=info -P eventlet