bradleyayers / django-celery-transactions

Django transaction support for Celery tasks.
Other
196 stars 56 forks source link

Setting CELERY_ALWAYS_EAGER=True leads to TransactionManagementError #3

Open smlz opened 12 years ago

smlz commented 12 years ago

When CELERY_ALWAYS_EAGER is set, tasks are executed synchronously in the same VM. Writing to the database in a such a djcelery_transactions.task, will then raise a TransactionManagementError, as the modifications are not automatically commited to the database.

[...]
  File "/home/marco/workspace/atizo-platform-env-python2.6/src/django/django/db/backends/__init__.py", line 115, in leave_transaction_management
    raise TransactionManagementError("Transaction managed block ended with "

TransactionManagementError: Transaction managed block ended with pending COMMIT/ROLLBACK

A patch for it is here: atizo/django-celery-transactions@1b74e55088bc795cd59c836e55c1eac432b1effb