|
Ожидание действий пользователя внутри транзакции
|
|||
---|---|---|---|
#18+
Пример некоего Activity: 1. Открываем транзакцию 2. Выполняем сложные расчеты. 3. Проверяем результаты расчета. 4. Запрашиваем у пользователя информацию о корректности результатов Далее два варианта: А: 5. Откатываем транзакцию. 6. После ответа пользователя, если он подтверждает правильность - Выполняем действия 1-4 повторно. И Commit Tran Б: 5. Ждем ответа пользователя внутри открытой транзакции 6. После ответа пользователя выполняем либо Commit либо Rollback Проблемы второго в том что ждать ответа пользователя можно довольно долго (он мог уйти на обед и т.п.) Можно сделать таймаут для пользователя и как-то это разрулить. В первом варианте проблемы в повторном выполнении одного и того же действия (что может быть долго) а так же в том что исходные данные над которыми выполняются эти действия могут измениться. Какие есть bestpractice для решения подобных задач? Имеют ли право на жизнь оба варианта? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2011, 17:12 |
|
Ожидание действий пользователя внутри транзакции
|
|||
---|---|---|---|
#18+
Хм-м-м... А если в варианте A до того, как пользователь ответит, кто-то другой изменит данные? Ведь транзакция защищает измененные строки (блокирует их), а тут? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2011, 17:20 |
|
Ожидание действий пользователя внутри транзакции
|
|||
---|---|---|---|
#18+
tru55, да, я указал это как проблему исходные данные над которыми выполняются эти действия могут измениться ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2011, 17:43 |
|
Ожидание действий пользователя внутри транзакции
|
|||
---|---|---|---|
#18+
pil0t, глупая постановка вопроса навязанная производителями СУБД важен контекст - какова роль пользователя, какова цена отката и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2011, 18:20 |
|
|
start [/forum/topic.php?fid=33&msg=37267823&tid=1548042]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 314ms |
total: | 458ms |
0 / 0 |