Transaction
@action(methods=['GET'], detail=False, url_path='test')
@transaction.atomic
def test(self, request, *args, **kwargs):
Book.objects.create(name=1)
try:
with transaction.atomic():
Book.objects.create(name=2)
print(1/0)
except:
pass
Book.objects.create(name=3)
return Response() # celery task
transaction.on_commit(lambda: my_fav_task.delay(param1))cursor = connection.cursor()
cursor.execute('SET TRANSACTION ISOLATION LEVEL SERIALIZABLE')
+ READ COMMITTED: read data đã commit
+ READ UNCOMMITTED: read data chưa commit
+ REPEATABLE READ: read data không thay đổi trong 1 transaction
+ SERIALIZABLE: lock read và writeLast updated