Имя: Пароль:
1C
1С v8
Очередь выполняемых операций
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) Это не облегчить, а усложнить
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.