|
Транзакция и нетранзакционное действие.
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... Транзакция чего не прошла? У тебя и деньги списываются, и уведомления отправляются в одной транзакции? Где ты такое видел? Вроде ТС такое и хотелУ него все три шага связаны исключительно с отправкой, то есть с одним действием. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2018, 15:22 |
|
Транзакция и нетранзакционное действие.
|
|||
---|---|---|---|
#18+
fkthatGivvПривет, может не тот форум, но вопрос примерно такой: Как работать с ситуацией когда надо совместить запись в БД и какое-нибудь внешнее действие, типа отправки емайла. Простой сценарий: 1. В таблицу вставляется запись с флагом Sent=0 2. По этой записи каким-то образом генерируется и отправляется емайл. 3. В записи устанавливается флаг Sent=1 Если коммитить после #1, то возможна ситуация когда емайл отправится, а Sent останется равным 0. Если коммитить после #3, то возможна ситуация когда емайл отправится, а записи в таблице не будет вообще. PS: В общем случае имеется ввиду не только отправка emailа, но любое действие типа вызова вебсервиса или записи чего-нибудь в оборудовние. В транзакции вставляем запись сразу с Sent=1, потом отправляем e-mail. Если e-mail отправлен, то коммитим транзакцию, если не отправлен, то откатываем. Но, как правильно говорили выше, тут уже от конкретных требований зависит. Потому что, например, если e-mail отправлен, то еще не факт, что он дойдет и будет прочитан . на то оно и емейл, что никакой гарантии по определению нет ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2018, 16:40 |
|
Транзакция и нетранзакционное действие.
|
|||
---|---|---|---|
#18+
в чем проблема то? письмо писать как запись в таблице (в транзакции). джоб подхватывает свободные записи из таблицы писем и шлет их. Пока транзакция не завершена - запись с ней не попадет в выборку джоба и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2018, 18:38 |
|
|
start [/forum/topic.php?fid=20&gotonew=1&tid=1399495]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 314ms |
total: | 456ms |
0 / 0 |