Pour mon application Web, j'utilise celery
avec redis
backend. Official FAQ vise la façon suivante pour acquérir le résultat d'une tâche si j'ai l'ID de la tâche.Comment obtenir les arguments transmis à la tâche du céleri?
result = my_task.AsyncResult(task_id)
result.get()
Je peux facilement accéder à des arguments dans le corps de la tâche:
@app.task
def my_task(foo, bar, baz=None):
kwargs = self.request.kwargs
args = self.request.args
Y at-il un moyen d'obtenir args
et kwargs
du AsyncResult ou où juste avoir l'identifiant de tâche?
Le problème est que j'ai besoin de ces arguments non seulement après le succès/l'échec d'une tâche, mais après, par exemple, une semaine, jusqu'à ce qu'ils soient expirés dans les redis. Maintenant, je pense que c'est impossible puisque le céleri ne les sauvegarde pas dans le backend. –
Vous pouvez explicitement sauvegarder les arguments en redis avec la combinaison id de la tâche. – ChillarAnand