Celery NotRegistered ошибка при запуске нескольких задач через send_task - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь запустить 2 задачи с одним работником таким образом, чтобы эти 2 задачи отправлялись в одно и то же время, чтобы рабочий выполнял одну задачу за раз. (Я намеренно избегаю способа импорта, так как собираюсь распространять его позже)

Вот start_worker.py

from celery import Celery
from time import sleep

app = Celery('tempo', 
             backend='redis://127.0.0.1',
             broker='redis://127.0.0.1')

# Optional configuration, see the application user guide.
app.conf.update(
    result_expires=3600,
    task_acks_late=True, 
    worker_prefetch_multiplier=1)

@app.task
def add(x, y):
    print(f'task, started. sleep 30 {x+y}')
    sleep(30)
    print(f'task, ended. {x+y}')
    return x + y

if __name__ == '__main__':
        app.worker_main(["--concurrency=1", "-n=tesa"])

start_task.py

from celery import Celery
app = Celery('Test',backend='redis://127.0.0.1', broker='redis://127.0.0.1')
r1 = app.send_task('tempo.add', args=(2,3))
r2 = app.send_task('tempo.add', args=(3,4))
print(r1.get(timeout=60),r2.get(timeout=60))

используя Redis. python 3,7 (только для форматирования, та же ошибка 3,6)

для воссоздания ошибки. python start_worker.py python start_task.py Вывод задания.

Traceback (most recent call last):
  File "start_task.py", line 5, in <module>
    print(r1.get(timeout=60),r2.get(timeout=60))
  File "/home/iamauser/anaconda3/envs/cl/lib/python3.7/site-packages/celery/result.py", line 228, in get
    on_message=on_message,
  File "/home/iamauser/anaconda3/envs/cl/lib/python3.7/site-packages/celery/backends/asynchronous.py", line 195, in wait_for_pending
    return result.maybe_throw(callback=callback, propagate=propagate)
  File "/home/iamauser/anaconda3/envs/cl/lib/python3.7/site-packages/celery/result.py", line 333, in maybe_throw
    self.throw(value, self._to_remote_traceback(tb))
  File "/home/iamauser/anaconda3/envs/cl/lib/python3.7/site-packages/celery/result.py", line 326, in throw
    self.on_ready.throw(*args, **kwargs)
  File "/home/iamauser/anaconda3/envs/cl/lib/python3.7/site-packages/vine/promises.py", line 244, in throw
    reraise(type(exc), exc, tb)
  File "/home/iamauser/anaconda3/envs/cl/lib/python3.7/site-packages/vine/five.py", line 195, in reraise
    raise value
celery.exceptions.NotRegistered: 'tempo.add'
...