如何在远程系统上配置和运行celery worker

 明依丞 发布于 2022-12-10 19:22

我正在研究芹菜并使用rabbitmq服务器并在服务器中的django项目中创建了一个项目(消息队列,数据库存在),它工作正常,我也创建了多个工作者

from kombu import Exchange, Queue
CELERY_CONCURRENCY = 8

CELERY_ACCEPT_CONTENT = ['pickle', 'json', 'msgpack', 'yaml']

CELERY_RESULT_BACKEND = 'amqp'
CELERYD_HIJACK_ROOT_LOGGER = True
CELERY_HIJACK_ROOT_LOGGER = True
BROKER_URL = 'amqp://guest:guest@localhost:5672//'

CELERY_QUEUES = (
  Queue('default', Exchange('default'), routing_key='default'),
  Queue('q1', Exchange('A'), routing_key='routingKey1'),
  Queue('q2', Exchange('B'), routing_key='routingKey2'),
)
CELERY_ROUTES = {
 'my_taskA': {'queue': 'q1', 'routing_key': 'routingKey1'},
 'my_taskB': {'queue': 'q2', 'routing_key': 'routingKey2'},
}


AMQP_SERVER = "127.0.0.1"
AMQP_PORT = 5672
AMQP_USER = "guest"
AMQP_PASSWORD = "guest"
AMQP_VHOST = "/"`


CELERY_INCLUDE = ('functions')

`

但我想从另一个服务器运行工作人员.所以我需要一些关于如何在另一个系统中运行一个工作人员的信息,当我提到几个网站时,它说我们需要在远程系统上运行django项目也是必要的吗?

2 个回答
  • 以下是这个想法的要点: 在机器A: 安装Celery和RabbitMQ. 配置rabbitmq以便机器B可以连接到它. 使用一些任务创建my_tasks.py并将一些任务放入队列中. 在机器B上: 安装芹菜. 将my_tasks.py文件从计算机A复制到此计算机. 运行工作程序以使用任务 我有同样的要求,并尝试芹菜.这样做要容易得多.几天前我写了一篇详细的博客文章.查看如何将任务发送到远程计算机?
    2022-12-11 01:56 回答
  • 您可以app.send_task()在django项目中使用以下内容:

    from celery import Celery
    import my_client_config_module
    
    app = Celery()
    app.config_from_object(my_client_config_module)
    
    app.send_task('dotted.path.to.function.on.remote.server.relative.to.worker',
                  args=(1, 2))
    

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