|
Очередь выполняемых операций
| ☑ |
0
ejikbeznojek
13.02.20
✎
13:50
|
Всем привет.
Есть самописная конфигурация на ОФ, серверная, релиз 8.3.13.1690
Есть ряд ресурсоёмких операций, например - отгрузить разом 200 накладных (всё что в 1й машине уехало).
Операции бывают разных типов (по типам я классифицирую исходя из того чтобы было поменьше пересечений по читаемым\изменяемым таблицам СУБД между типами)
Хочу поставить запрет, чтобы операции одного типа нельзя было одновременно запустить.
Сейчас у меня всего 1 тип, и я пока что сделал через константу.
Т.е. на точке откуда запускаются операции этого типа, я читаю константу, определяю, что сейчас ничего с этим типом операций не выполняется, устаавливаю константу и запускаю операцию. Ну или пишу подождать если кто-то другой что-то делает.
С увеличением количества типов у меня пока в голове вертятся следующие варианты.
1. Добавить ещё несколько констант (мне меньше всего нравится)
2. Переделать всё на какой-нибудь справочник\рс. (когда-то когда эта же база была на 8.1 это почему-то не взлетело, но не помню почему,)
3. Запихнуть это всё как-нибудь в фоновые задания. И стартовать в порядке очереди запуска.
Вот хотел посоветоваться, как лучше?
|
|
1
Fragster
гуру
13.02.20
✎
14:20
|
сделать очередь вместо этого всего. ну и 200 накладных разом - это не много.
|
|
2
Fragster
гуру
13.02.20
✎
14:28
|
лучше проанализировать и избавиться от взаимоблокировок или в чем там у тебя узкое место
|
|
3
ejikbeznojek
13.02.20
✎
14:30
|
(1) Когда 1 человек 200 накладных отгружает, это немного.
А когда 5 операторов одновременно отгружает 5 разных машин, то уже нормально.
А на чём эту очередь делать?
(2) Ну да, взаимоблокировки.
|
|
4
Fragster
гуру
13.02.20
✎
14:42
|
(3) 5 одновременных пользюков - это вообще ни о чем.
очереди на диспетчере очередей, в простейшем случае - РС и фоновые задания - читатели. Но у тебя не тот случай, разберись с блокировками.
|
|
5
ejikbeznojek
13.02.20
✎
14:59
|
(4) Так пользюков 200-300 , 5 это те кто машины отгружают))
С блокировками конечно тоже придётся разбираться, но это скорее всего будет не быстро.
А как-то облегчить жизнь можно уже сейчас.
|
|
6
vicof
13.02.20
✎
15:06
|
(5) Это не облегчить, а усложнить
|
|