나는 내가 RabbitMQ 브로커와 두 개의 셀러리 소비자 (main1.py 및 main2.py) 같은 브로커에 연결을 모두 설치 서버가 있습니다. 두 번째 사용자 (main2.py에서셀러리 작업
app = Celery('tasks', broker=..., backend=...)
app.conf.task_routes = (
[
('tasks.beat', {'queue': 'print-queue'}),
],
)
app.conf.beat_schedule = {
'beat-every-10-seconds': {
'task': 'tasks.beat',
'schedule': 10.0
},
}
@app.task(name='tasks.beat', bind=True)
def beat(self):
for i in range(10):
app.send_task("tasks.print", args=[i], queue="print-queue")
return None
: 제 소비자에
( main1.py)는, I는 특정 큐에 여러 번에 다른 작업을 보내는 셀러리 비트 구현 ,691 :app = Celery('tasks', broker=..., backend=...)
app.conf.task_routes = (
[
('tasks.print', {'queue': 'print-queue'}),
],
)
@app.task(name='tasks.print', bind=True)
def print(self, name):
return name
나는 두 셀러리 노동자를 시작할 때 :) 나는 작업이 이상했다 구현
consumer1: celery worker -A main1 -Q print-queue --beat
consumer2: celery worker -A main2 -Q print-queue
나는 이러한 오류를 얻을 : 두 번째 소비자
에 최초의 소비자
[ERROR/MainProcess] Received unregistered task of type 'tasks.beat'
에
[ERROR/MainProcess] Received unregistered task of type 'tasks.print'
은 가능한 모두 연결 다른 셀러리 응용 프로그램에서 작업을 분할하는 것입니다 같은 브로커?
미리 감사드립니다.
감사 @mbattifarano, 난 완전히 당신이 말을 이해했다. 나는 ** tasks.beat **와 ** tasks.print **를위한 두 개의 다른 대기열을 사용하여 문제를 해결했다. – alauri