Sto usando Django 1.6
, RabbitMQ 3.5.6
, celery 3.1.19
.I compiti di Celery con eta vengono rimossi da RabbitMQ
Esiste un'attività periodica che viene eseguita ogni 30 secondi e crea 200 attività con il parametro eta
specificato. Dopo aver eseguito il gestore del sedano, lentamente la coda viene creata in RabbitMQ e vedo circa 1200 attività pianificate in attesa di essere licenziate. Quindi, Riavvio del gestore di sedici e tutte le attività in attesa di 1200 programmate vengono rimosse da RabbitMQ.
Come creare attività: my_task.apply_async((arg1, arg2), eta=my_object.time_in_future)
corro il lavoratore in questo modo: python manage.py celery worker -Q my_tasks_1 -A my_app -l
CELERY_ACKS_LATE
è impostato su True
in ambienti Django. Non ho trovato nessuna ragione possibile.
Devo eseguire il worker con una configurazione/flag/parametro diversa? Qualche idea?
1) Sei sicuro di voler riavviare solo il lavoratore e non l'intero server di coniglio? 2) Forse hai impostato qualche task 'ttl' ora e viene semplicemente rimosso dopo questo tempo? – matino
1) Sono sicuro che solo i lavoratori vengono riavviati. 2) Non c'è nessun TTL impostato su task in nessuna configurazione. È quello di default. Ma se tengo aperti i lavoratori, i compiti rimangono in coda. –
Puoi condividere il registro di debug? –