2017-06-05 3 views
0

Je veux obtenir ETA de la tâche dans le céleri chaque fois avec obtenir la demande. Il n'y a pas d'API directe dans le céleri pour obtenir le temps planifié de la tâche (sauf inspect() - mais cela me semble très coûteux)céleri meilleure façon de gérer/obtenir eta de la tâche

Comment puis-je gérer eta d'une tâche particulière? L'inconvénient de stocker le temps eta dans le modèle Django n'est pas cohérent (soit je ne peux pas stocker taks_id parce que je ne peux pas - je ne sais pas comment obtenir eta de task_id)

Je vois sur une question qu'il n'y a pas d'API, parce qu'en quelque sorte dépend de courtiers et etc Mais j'espère qu'il y a une solution

Alors, quelle est la meilleure façon de gérer task_id pour obtenir eta?

backend et le courtier est Redis

Répondre

0

Je ne pense pas qu'il y ait un moyen magique pour le faire. Ce que je fais dans mon application est juste de consigner le temps d'exécution pour chaque tâche et le retourner comme un ETA. Si vous souhaitez obtenir un peu plus de précision, vous pouvez également tenir compte de la taille de la file d'attente redis et du taux de consommation de tâches.

+0

Je suis déjà connecté au modèle en tant qu'index et je gère moi-même cet index –