Буду благодарен за любую помощь, вторую неделю пытаюсь решить проблему с тразакциями в celery. Есть отдельный сервер на котором бежит celery там выполняеться несколько определеных задач по добавлению записей в базу и их обновлении. Периодически все падает со следующей ошибкой.
InternalError: current transaction is aborted, commands ignored until end of transaction block
И все перестает работать, помагает только рестарт celery. У меня django 1.7, нашел вот такую запись в документации: http://celery.readthedocs.org/en/latest/userguide/tasks.html#database-transactions. Не совсем понял как правильно нужно это использовать в новых версиях джанги. Пробовал следующие варианты, ночего не помагает
@task(ignore_result=True) @transaction.atomic def update_task(obj_id): try: item = Object.objects.get(pk=obj_id) obj.update() except Object.DoesNotExist: ... som other function try: sid = transaction.savepoint() obj2.save() transaction.savepoint_commit(sid) except IntegrityError: transaction.savepoint_rollback(sid)
Зарание благодарен