|
Ожидание действий пользователя внутри транзакции
|
|||
---|---|---|---|
#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&fpage=26&tid=1548042]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 149ms |
0 / 0 |