Dans mon travail principal, je travaille sur une application Django avec Celery pour la mise en file d’attente, qui utilise Redis en tant que backend. À chaque déploiement, les tâches disparaissent. Et nous devons intégrer la mise à jour/le déploiement entre les tâches de longue durée du client.
Je remplace tout cela par une file d’attente basée sur une base de données utilisant une machine à états formelle, et j’utilise Celery uniquement pour la phase « exécuter la tâche immédiatement ». Cela me donne un état persistant, la capacité d’exécuter des tâches directement, c’est-à-dire sans utiliser Celery comme file d’attente, et l’état n’est pas transitoire dans Redis.
Merci Cameron, je vais me concentrer sur celui-ci, puisque nous avons maintenant la journalisation activée à nouveau. Jusqu’à présent, rien d’évident, il n’y a pas d’erreurs ou de tâches d’arrière-plan échouées que je puisse voir, et d’après la logique du code, je ne vois rien qui pourrait intentionnellement ignorer ces e-mails. Pour ce sujet, personne n’a reçu d’e-mail pour l’OP, ce qui est intriguant, c’est comme si le travail n’avait même jamais été mis en file d’attente en premier lieu. Je continuerai à chercher et vous tiendrai au courant.
@cameron-simpson nous avons examiné cela plus en détail, et le problème concerne en fait notre système de file d’attente de révision. Par exemple, avec Mental block, simple question - Python Help - Discussions on Python.org, il a été détecté comme du « spam » par Akismet, ce qui a rendu le message soumis à l’approbation de l’administrateur. Lorsque l’administrateur approuve le message, les e-mails en mode liste de diffusion ne sont pas mis en file d’attente. Lorsque nous corrigerons ce bug, cela devrait résoudre le problème. Je devrais pouvoir m’en occuper dans les prochaines semaines.
J’ai fusionné ce correctif aujourd’hui @cameron-simpson, je vais également déployer Python aujourd’hui, puis si vous pouviez me faire savoir s’il y a d’autres cas où cela se produit, ce serait formidable Cependant, je pense que cela devrait résoudre le problème :