我正在研究芹菜并使用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项目也是必要的吗?
您可以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))