如何在PHP中的celery-rabbitmq队列上发布任务?

 游戏fans2012 发布于 2023-02-09 14:55

我安装了以下版本的芹菜和rabbitmq -

芹菜3.1.6
rabbitmq 3.1.1

我可以从PHP发布任务到默认队列 -

//client.php
PostTask('tasks.add', array(2,2));

我的worker模块是python -

# tasks.py
from celery import Celery
celery = Celery('tasks', broker='amqp://guest:guest@localhost:5672//')
@celery.task(queue='demo', name='add')
def add(x, y):
    return x + y

我像这样经营芹菜工人和客户 -

# terminal window 1
$ celery -A tasks worker --loglevel=info
# terminal window 2
$ php -f client.php

这有效.我在终端窗口1中看到下面的输出:

Received task: tasks.add[php_52b1759141a8b3.43107845]
Task tasks.add[php_52b1759141a8b3.43107845] succeeded in 0.000701383920386s: 4

但我希望有不同的队列.对于演示,假设我只想要一个名为demo的队列.所以我像这样经营我的芹菜工人 -

$ celery -A tasks worker --loglevel=info -Q demo

但它不起作用.任务没有被执行.我想这可能是因为PHP代码在默认队列上发布任务:celery(显然不在demo队列中).

如何在PHP中的特定队列上发布我的任务?请帮忙.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有