Вопросы об объектно поставленных задачах - PullRequest
0 голосов
/ 13 января 2020

У меня есть несколько вопросов о том, как работает задача с транзакционной постановкой в ​​очередь и когда она выполняется.

Предположим, у меня есть некоторые операции в транзакции в следующем порядке:

  1. Запись объекта
  2. Запись другой сущности
  3. Добавление работы в очередь в транзакции
  4. Запись еще одной сущности

1) Если одна из операций записи сущности завершается неудачно , вся транзакция не удалась. Означает ли это, что никакая работа не будет поставлена ​​в очередь, даже если она завершится неудачей на шаге 4?

2) Когда работа добавляется в очередь, если все операции записи завершаются успешно? Как последний шаг? Или просто в том порядке, в каком оно появляется?

3) Что, если добавление работы в очередь завершится неудачно, будет ли сбой всей транзакции и откат всех операций записи?

1 Ответ

1 голос
/ 13 января 2020

1) Да, если транзакция откатывается, никакая работа не ставится в очередь.

2) Работа добавляется в очередь как часть фиксации транзакции. При выполнении работа в очереди гарантированно увидит данные в состоянии после транзакции (если, конечно, они не были изменены иным образом).

3) Если добавление работы в очередь завершается неудачно (и вы не делаете иначе) поймать исключение), исключение будет распространяться вверх и вызывать откат транзакции.

...