J'ajoute un backend pour les résultats de céleri, et j'ai un problème pour envoyer des tâches, et certaines sont acceptées alors que d'autres ne le sont pas.Céleri n'accepte pas les tâches
Les tâches qui sont et ne sont pas exécutées à la fois montrent que cette sortie du journal:
[2014-06-09 15:50:59,091: INFO/MainProcess] Received task: tasks.multithread_device_listing[e3ae6d12-ad4b-4114-9383-5802c91541f2]
ceux qui sont exécutés puis montrer cette sortie:
[2014-06-09 15:50:59,093: DEBUG/MainProcess] Task accepted: tasks.multithread_device_listing[e3ae6d12-ad4b-4114-9383-5802c91541f2] pid:2810
Bien que les tâches qui ne sont pas exécutés jamais arriver à la ligne ci-dessus.
Comment j'envoyer des tâches:
from celery import group
from time import sleep
signatures = []
signature = some_method_with_task_decorator.subtask()
signatures.append(signature)
signature = some_other_method_with_task_decorator.subtask()
signatures.append(signature)
job = group(signatures)
result = job.apply_async()
while not result.ready():
sleep(60)
Ma config de céleri de l'avoir rapport, il est:
software -> celery:3.1.11 (Cipater) kombu:3.0.18 py:2.7.5
billiard:3.3.0.17 py-amqp:1.4.5
platform -> system:Darwin arch:64bit imp:CPython
loader -> celery.loaders.app.AppLoader
settings -> transport:amqp results:amqp://username:[email protected]:5672/automated_reports
CELERY_QUEUES:
(<unbound Queue automated_reports -> <unbound Exchange default(direct)> -> automated_reports>,)
CELERY_DEFAULT_ROUTING_KEY: '********'
CELERY_INCLUDE:
('celery.app.builtins',
'automated_reports.queue.tasks',
'automated_reports.queue.subtasks')
CELERY_IMPORTS:
('automated_reports.queue.tasks', 'automated_reports.queue.subtasks')
CELERY_RESULT_PERSISTENT: True
CELERY_ROUTES: {
'automated_reports.queue.tasks.run_device_info_report': { 'queue': 'automated_reports'},
'uploader.queue.subtasks.multithread_device_listing': { 'queue': 'automated_reports'},
'uploader.queue.subtasks.multithread_individual_device': { 'queue': 'automated_reports'},
'uploader.queue.tasks.multithread_device_listing': { 'queue': 'automated_reports'},
'uploader.queue.tasks.multithread_individual_device': { 'queue': 'automated_reports'}}
CELERY_DEFAULT_QUEUE: 'automated_reports'
BROKER_URL: 'amqp://username:********@localhost:5672/automated_reports'
CELERY_RESULT_BACKEND: 'amqp://username:[email protected]:5672/automated_reports'
Ma commande de démarrage est:
~/Documents/Development/automated_reports/bin/celery worker --loglevel=DEBUG --autoreload -A automated_reports.queue.tasks -Q automated_reports -B --schedule=~/Documents/Development/automated_reports/log/celerybeat --autoscale=10,3
Aussi, quand je me arrête céleri, il tire des tâches de ma file d'attente qui n'ont jamais été acceptées. Puis, quand je redémarre, il les accepte et les exécute.
Toute aide concernant ce comportement est très appréciée. Je suis certain que cela a quelque chose à voir avec ma configuration de backend, mais j'ai de la difficulté à isoler le problème ou sa correction. Merci!