berezdetsky

Results 9 comments of berezdetsky

С сервером происходит нагрузочно-интеграционный тест. :) Получается примерно так: в транзакции в большом количестве вызывается ДобавитьЗаданиеВнеОчереди. Оттуда фоново запускаются Исполнитель_Выполнение, которые пытаются ВзятьЗаданиеВРаботу. Т.е. ВзятьЗаданиеВРаботу запускается из другого сеанса, когда...

[ТестМенеджерЗаданий.zip](https://github.com/wizi4d/TaskManagerFor1C/files/216570/default.zip) С днём рождения! :)

Как минимум, ожидается что задание не зависнет. Напомню, там версия 1.4.3. :) Как максимум - что таймаута вообще не будет. Типа: `Если ТранзакцияАктивна() Тогда` `    ДобавитьЗадание(...); // не запускать вне...

![default](https://cloud.githubusercontent.com/assets/9267845/14532957/1519f15e-0274-11e6-999d-5f7532170af4.PNG) Не фотошоп :)

В таком сценарии можно получить блокировку только если один из потоков добьётся эскалации блокировок. Моя проблема показана в моём тесте. Конечно, код можно переписать. Но посмотри на это с другой...

Нету. Есть идея по изменению кода - выше. Там обратная совместимость пострадает, но ожиданий на блокировках не будет.

Нет. Добавить в ДобавитьЗаданиеВнеОчереди проверку наличия активной транзакции, и при её наличии отправлять вызов в ДобавитьЗадание.

~~Так запрос эти задания не увидит. Или сам запрос будет ждать на блокировке диапазона индекса? Надо будет проверить..~~

Первое приближение выглядит как ненужное усложнение. Можно сразу СоздатьРегламентноеЗадание() с требуемым расписанием, по аналогии с БСПшной подсистемой доп. обработок.