berezdetsky
berezdetsky
С сервером происходит нагрузочно-интеграционный тест. :) Получается примерно так: в транзакции в большом количестве вызывается ДобавитьЗаданиеВнеОчереди. Оттуда фоново запускаются Исполнитель_Выполнение, которые пытаются ВзятьЗаданиеВРаботу. Т.е. ВзятьЗаданиеВРаботу запускается из другого сеанса, когда...
[ТестМенеджерЗаданий.zip](https://github.com/wizi4d/TaskManagerFor1C/files/216570/default.zip) С днём рождения! :)
Как минимум, ожидается что задание не зависнет. Напомню, там версия 1.4.3. :) Как максимум - что таймаута вообще не будет. Типа: `Если ТранзакцияАктивна() Тогда` ` ДобавитьЗадание(...); // не запускать вне...
 Не фотошоп :)
В таком сценарии можно получить блокировку только если один из потоков добьётся эскалации блокировок. Моя проблема показана в моём тесте. Конечно, код можно переписать. Но посмотри на это с другой...
Нету. Есть идея по изменению кода - выше. Там обратная совместимость пострадает, но ожиданий на блокировках не будет.
Нет. Добавить в ДобавитьЗаданиеВнеОчереди проверку наличия активной транзакции, и при её наличии отправлять вызов в ДобавитьЗадание.
~~Так запрос эти задания не увидит. Или сам запрос будет ждать на блокировке диапазона индекса? Надо будет проверить..~~
Первое приближение выглядит как ненужное усложнение. Можно сразу СоздатьРегламентноеЗадание() с требуемым расписанием, по аналогии с БСПшной подсистемой доп. обработок.