Je veux exécuter une tâche Django - Celery avec la gestion manuelle des transactions, mais il semble que les annotations ne s'empilent pas.Django - Celery: @transaction et @task ne s'empilent pas
par exemple.
def ping():
print 'ping'
pong.delay('arg')
@task(ignore_result=True)
@transaction.commit_manually()
def pong(arg):
print 'pong: %s' % arg
transaction.rollback()
résultats dans
TypeError: pong() got an unexpected keyword argument 'task_name'
alors que les résultats de l'ordre d'annotation inverse dans
---> 22 pong.delay('arg')
AttributeError: 'function' object has no attribute 'delay'
Il est logique, mais je vais avoir du mal à trouver une solution agréable. Les docs Django ne mentionnent pas d'alternatives à l'annotation, et je ne veux pas faire de classe pour chaque tâche de céleri quand je n'en ai pas besoin.
Des idées?
C'est exactement ce que j'espérais! Merci! – Rob