Django 1.6, Transaction.commit_on_success с Multiprocessing не работает

Я новичок в Django и пытаюсь написать несколько тестовых примеров.

В моем коде я делаю транзакцию. Для этого я заблокировал свой код, используя select_for_update в django. Теперь я хочу проверить, работает ли блокировка правильно или нет. Я запускаю 2 или более процессов одновременно, чтобы он позволял только первый процесс и ждать здесь для завершения первого процесса, а затем другого процесса.

#here XYZ and ABC are models. @transaction.commit_on_success def transaction_func(): exp1 = ABC(a = 5) exp1.save() process_list =[] for i in xrange(2): p = Process(target=row_lock_method, args=('some_string',)) p.start() time.sleep(3) process_list.append(p) for each in process_list: each.join() raise def row_lock_method(code): exp2 = XYZ(b = code) exp2.save() client = Client() client.login(username='gaurav@example.com', password='sample123') response = client.post('some_url',{'exp2':exp2},follow=True) 

Здесь вышеуказанный код находится в другом файле вида. Поэтому я использовал здесь задание cron для запуска этого файла в django. Я вызываю row_lock_method дважды в transaction_func, используя процесс. Поскольку тест выполняется успешно, но это в реальной базе данных, поэтому я хочу отменить все изменения, сделанные в этом задании, поэтому я поставил условие повышения после обоих циклов. Так что здесь происходит это исключение, и он будет откатывать его через transaction.commit_on_success . но моя проблема в том, что откат здесь не работает. Даже сообщение об ошибке не появляется.

Я что-то делаю неправильно. Пожалуйста, ответьте. Заранее спасибо.