Допустим, у меня есть три сервера A, B & C. Сервер C будет иметь код задачи сельдерея, и мне нужно выполнить его с серверов A и B.
Из документации сельдерея я вижу, что есть файл task.py
, который запускается как работник сельдерея
from celery import Celery
app = Celery('tasks', broker='pyamqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
И затем у нас есть еще один файл python (скажем, client.py
), который вызывает эти задачи.
from tasks import add
add.delay(4, 4)
Здесь я вижу, что файл client.py
зависит от файла tasks.py
, так как он импортирует task
из файла tasks.py
. Если мы хотим запустить эти два файла на отдельных серверах, нам нужно отделить их и как-то вызвать задачи, не импортируя код. Я не могу понять, как этого добиться. Итак, как это можно сделать?