python - tâche asynchrone céleri + lapin MQ, les messages de file d'attente continuent d'augmenter
高洛峰
高洛峰 2017-06-22 11:51:49
0
1
1140

Lorsque céleri coopère avec lapinmq pour effectuer des tâches asynchrones, on constate que le nombre de messages dans lapinmq augmente constamment, mais ces messages ont en fait été traités par la tâche.

En regardant le backend fourni avec rabbimtq, nous avons constaté que dans les messages en file d'attente, le nombre de messages prêts et totaux a atteint plus de 5 000, et la valeur de non reconnu est 0. Cependant, lorsqu'il fonctionne réellement, la valeur de non reconnu changera, mais elle finira par devenir 0. Il n'y a rien de spécial dans la configuration de céleri. Il définit uniquement le contenu suivant
CELERY_IMPORTS = ('testtasks',)
BROKER_URL = '. amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'amqp://'

Ensuite, regardez les ressources système. La mémoire de processus d'erl est relativement grande, probablement plus de 300 Mo sont temporairement utilisés

Y a-t-il un problème avec la configuration de celeri de mon côté ?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(1)
曾经蜡笔没有小新

Cela a été résolu. Mettez simplement à niveau Rabbitmq vers la version 3.3 ou supérieure.
J'ai déjà utilisé Rabbitmq version 3.1, puis le céleri est la version 3.1


La vraie façon de résoudre le problème est d'ajouter un attribut ignore_result=True à la tâche, comme suit
@app.task(ignore_result=True)

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal