|
|
|
check с условием, выходящим за пределы одной записи: работает "через раз"
|
|||
|---|---|---|---|
|
#18+
ТаблоидhvladА кто будет регулировать конкурентный доступ ? И, главное - как ?Перед тем, как затолкать в GTT очередную пару "Изделие, Кол-во", транзакция создает контекстную переменную с именем = 'part_' || :this_part_id и значением = cast( :this_amount as varchar). Затем она пробегает по mon$context_variables where mon$variable_name = 'part_' || :this_part_id и суммирует ВСЕ количества, которые сейчас там имеются по этому изделию.И пока она бегает, туда параллельно добавляют и убирают строки. Это было бы смешно, если бы не было так нудно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 15:00:15 |
|
||
|
check с условием, выходящим за пределы одной записи: работает "через раз"
|
|||
|---|---|---|---|
|
#18+
Таблоидпишет в свою "корзину покупателя" 8 штук (но еще не коммитит)почему не коммитит? шоб веселей жилось? ТаблоидНо это "видно" и есть грязное чтениеты путаешь бизнес транзакции и транзакции SQL сервера. Если коммитить все, то не возникнет желания заниматься грязным чтением. внес клиент запись в свою корзинку, надо ее закоммитить и на регистр остатков можно навесить типа софт резерв. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 17:26:47 |
|
||
|
check с условием, выходящим за пределы одной записи: работает "через раз"
|
|||
|---|---|---|---|
|
#18+
hvladЭто было бы смешно, если бы не было так нудно...Один раз что-то подобное всё-таки получилось . Да, там другая задача, но принцип тот же - через контексты. Правда, еще и db-level триггер нужен :-) Как будет время - попробую сделать что-то на тему "неотрицательных остатков", как знать - вдруг попрёт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 01:02:51 |
|
||
|
check с условием, выходящим за пределы одной записи: работает "через раз"
|
|||
|---|---|---|---|
|
#18+
Ivan_Pisarevskyвнес клиент запись в свою корзинку, надо ее закоммитить и на регистр остатков можно навесить типа софт резерв.Кто будет снимать этот soft-reserve в случае выпадения юзера, его создавшего, в долгую нирвану ? Доверять проверку на неактивность экземпляру приложения, который у него запущен, - нельзя (оно вообще может зависнуть или отвалиться от сети и проч). Запускать по крону задание - это ставить приложение в зависимость от внешней среды (как минимум - от факта, что служба планировщика действительно работает, а также что само задание в ней не "почикали" случайно). Не очень гут, КМК... ЗЫ. Кроме того, когда задание на грохание мягких резервов отработает и удалит к-л резерв, приложение должно непременно отреагировать на сиё, предупредить юзера. А это значит - отдельный поток с периодическим контролем записей, которые добавлялись юзером в корзину, с проверкой: "как там, вас не грохнули еще ?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 01:15:28 |
|
||
|
check с условием, выходящим за пределы одной записи: работает "через раз"
|
|||
|---|---|---|---|
|
#18+
ТаблоидКто будет снимать этот soft-reserve в случае выпадения юзера, его создавшего, в долгую нирвану ? Ты же сам говорил: менеджер с более высоким приоритетом. Кроме того юзер же обычно не на кладбище выпадает, рано или поздно он залогинится обратно и либо продолжит, либо таки отменит свой заказ. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 02:29:05 |
|
||
|
check с условием, выходящим за пределы одной записи: работает "через раз"
|
|||
|---|---|---|---|
|
#18+
ТаблоидЗапускать по крону заданиеЗачем? Достаточно тайштампа рядом с самим резервом, если ему менее 15 минут, то его никто не снимает, далее только менеджер, через полчаса-час уже могут снимать все кому не лень. На то оно и софт, что оно является периодическим реквизитом, а не списанием товара со склада. Таблоидвыпадения юзера, его создавшего, в долгую нирвану ?плевать на юзера, время наше все, кто не успел, тот опоздал. Периоды времени выбраны "с потолка", опять таки они могут зависеть от привилегий юзера, анониму резерв 5 минут, продвинутому 15, постоянному клиенту час и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 08:40:21 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38594117&tid=1563785]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
185ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 503ms |

| 0 / 0 |
