Подтвердить что ты не робот

Сельдерей - Как отправить задачу с удаленной машины?

У нас есть сервер, на котором работают сельдерей и очередь Redis. Задачи определены на этом сервере.
Мне нужно иметь возможность вызывать эти задачи с удаленной машины.
Я знаю, что это делается с помощью send_task, но я до сих пор не понял, КАК? Как сообщить send_task, где находится очередь? Где я могу передать параметры соединения (или что нужно)? Я искал часы, и все, что я могу найти, это:

from celery.execute import send_task
send_task('tasks.add')

Ну, это означает, что мне нужно celery на моей вызывающей машине. Но что еще мне нужно настроить?

4b9b3361

Ответ 1

Это может быть способ: Создавая объект Celery и используя send_task с этого объекта, объект может иметь конфигурацию, чтобы найти брокера.

from celery import Celery
celery = Celery()
celery.config_from_object('celeryconfig')
celery.send_task('tasks.add', (2,2))

celeryconfig - это файл, содержащий конфигурацию сельдерея. Существуют другие способы настройки конфигурации объекта сельдерея.

Ответ 2

на удаленном компьютере, запустите сельдерей с помощью broker_url, указывающего на машину, на которой вы хотите запустить задачи. Затем просто отправьте задачи (если у вас есть определенные очереди для отправки, а затем добавьте соответствующие ключи маршрутизации).

Ответ 3

Существует несколько способов определения правил маршрутизации, наиболее общим из которых является пользовательский объект маршрутизатора. Во всех случаях вызывающий абонент просто предоставляет параметр routing_key в send_task, delay или apply_async, и маршрутизатор определяет, в какую очередь отправлять эту задачу.

Ответ 4

То, что вы нашли, было правильным.

from celery.execute import send_task

send_task('tasks.add')

Если нужны какие-либо аргументы

send_taks('tasks.add', kwargs={'a'=1, 'b'=2})