Имя: Пароль:
1C
1С v8
Перенос фонового задания на новый рабочий процесс
,
0 August
 
20.06.16
14:14
Дано:
8.3.7.1860
Консолидация на обычных формах
фоновое задание длительностью несколько часов

Рабочие процессы живут своей жизнью и при перезапуске перекидывают на вновь запущенные все что угодно, только не висящее на них фоновое задание.

Кто-то сталкивался? Это такое особенное поведение платформы? Или кривые руки? Есть ли пути обхода?

Давайте порассуждаем? :)
1 Aleksey
 
20.06.16
14:15
а разве что то перекидывается?
2 Necessitudo
 
20.06.16
14:17
Ну таки вполне может. Правда начнется все сначала)
3 August
 
20.06.16
14:18
(1) может я ошибаюсь, но по моему пользователь этого не замечает при интерактивной работе.
Кроме того, не понятно почему сервер вообще гасит рабочий процесс, если у меня не установлено значение в настройках: убивать по превышению через столько то секунд (ну или как то так)
4 August
 
20.06.16
14:18
висит фоновое, есть соединение с СУБД, какого Х он его прибил?
5 Карупян
 
20.06.16
14:19
убить процесс
6 August
 
20.06.16
14:19
(2) как вариант думал хотя бы так. т.е. отслеживать КАК завершилось фоновое и если хреново - то запускать его снова, так?
7 Карупян
 
20.06.16
14:19
Гасить процессы по таймайту - это ЗЛО, 1С так очень не рекомендует
8 August
 
20.06.16
14:21
(7) так я и написал, что я ничего не гашу, у меня по умолчанию специально везде нули. вот только серверу плевать, он их перезапускает неведомым образом, когда ему приспичило
9 August
 
20.06.16
14:23
точнее не так. перезапускает то он по превышению памяти, например, только есть ситуация:
сервер посчитал, что ему рабочих процессов не хватает, создает новый, через 5 мин например запускается фоновое, вешается на этот новый рпхост, через час работы первый рпхост становится не нагружен и сервак решает, что ему хватит одного процесса и гасит нафиг второй, на котором в это время висело фоновое... бывает и по другому, вариаций много, суть одна
10 faramund
 
20.06.16
14:34
(0) Фоновые задания не перебрасываются. Если процесс выключился, напрмиер по превышению памяти, но на нем работает только фоновое задание, оно доработает до конца, в случае если не настроено принудительное заверщение процесса, после чего процесс будет убит менеджером.
(1) Перекидываются, например клиентские сеансы не находящиеся в серверном вызове.
(8) Нули это тоже ограничение, только в % от доступной памяти. Без ограничения -1, насколько я помню. Почитайте документацию, там подробно описано.
(9) Нормальное поведение, лишний ненагруженный процесс никому не нужен.
11 Aleksey
 
20.06.16
14:36
(3) Я всегда думал что при простое просто создается новое. А если процесс рабочий, то 1С ждет его завершения, а после завершения уже "перекидывает" но новый
12 Aleksey
 
20.06.16
14:36
(10) Ну т.е. в рабочим состоянии никто никуда не перекидывает
13 faramund
 
20.06.16
14:47
(11) При простое нет необходимости что-то создавать.
Детально описано все например тут http://its.1c.ru/db/v837doc#bookmark:cs:TI000000047, про рабочие процессы раздел 2.1.7.3.3
14 August
 
20.06.16
14:58
(13) за ссылку спасибо, читаю

>>  Если процесс выключился, напрмиер по превышению памяти, но на нем работает только фоновое задание, оно доработает до конца, в случае если не настроено принудительное заверщение процесса, после чего процесс будет убит менеджером.

т.е. если установлено "допустимый объем памяти", но "выключенные процессы останавливать через" стоит "0", то фоновое ДОЛЖНО жить и рпхост просто так сам по себе отвалиться не должен. так? даже если производительность не упадет в ноль из-за немерянных нагрузок фонового задания на сервер. так?)
15 faramund
 
20.06.16
15:05
(14) Да, как только процесс достигнет предела памяти насчнется отсчет времени, как только время отсчитанное превысит указанное в интервале превышения доступного объема памяти, процесс будет выключен, но фоновое в нем будет жить до момента своего завершения.
16 faramund
 
20.06.16
15:08
(15) поэтому иногда приходится следить за такими процессами в которых остались фоновые задания и при выедании ими памяти в ноль убивать вручную, попутно разбираяся почему они так много кушают)
17 August
 
20.06.16
15:17
ну вот и гугл соглашается с вами, что у большинства проблемы как раз зависшие фоновые, а у меня проблема обратная)

пока в итоге:
1. т.к. у меня "выключенные процессы останавливать через" установлено не в ноль, можно попробовать поиграться с этим
2. возможно имеет смысл ловить статус выполнения фонового и если завершилось плохо, то запустить его вновь. пусть сначала, но это лучше чем ничего.

еще мысли есть у кого?
18 faramund
 
20.06.16
15:53
(17) Останавливать думаю не стоит, если нет  выедания памяти.
Посмотри что за фоновое задание такое, которое работает так долго. Возможно его код надо оптимизировать. Про статус завершения: тут надо действовать согласно логики решения, в каких-то случаях нужен перезапуск, в каких-то случая перезапуск не нужен.
19 August
 
20.06.16
16:32
(18) да задание то я знаю какое) сам его и создал) там расчет безумный идет за год