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

标签 python python-3.x rabbitmq pycharm celery

我正在尝试将 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

关于python - 无法看到在 celery-rabbitMQ 组合中执行的任务的输出消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55886263/

相关文章:

python - 在 WSL 中使用 python/brownie 时遇到问题

python - 使用 beautifulsoup 抓取时如何在 html 日期选择器中输入日期范围?

python - 在 for 循环中使用 *args 不考虑变化的变量

python-3.x - 使用 bambi 的泊松回归结果不正确?

ssl - 无法与 rabbitmq 建立 ssl 连接

java - RabbitMQ:查找因消费者异常而导致 channel 关闭的原因

python - 以编程方式取消保护 Excel 文件

python - 如何检测身份证上的全息图覆盖层?

python-3.x - Lambdify 参数积分

networking - 为什么rabbitmq监听43411端口?