Есть Ли Возможность В 8.1 Многозадачность? А В 8.2?

  • Автор темы Истребитель
  • Дата начала
И

Истребитель

#1
Добрый день!

Фирма жалуется, что у них виснет 1С (8.1 серверная). Выяснилось, что проблема следующая - иногда при проведении документ тупит по несколько секнуд. По журналу регистрации видно, что в это время либо происходит обработка фонового задания, либо происходит выполнение кода внешней обработки, которая загружает заказы с сайта (через запуск php и парсинг полученных xml'ек).

Вопросы - есть ли в 8.1 многозадачность? Т.е. если одновременно два юзера запускают код, который что-то там из базы читает, что-то там с диска читает, просто вычисления проводит, или ждет завершения запущенных внешних приложений, это всё дело происходит по очереди, или одновременно? Можно ли как-то указать приоритет, скажем, чтобы не юзер ждал при проведении, а обработка ждала юзеров? Переход на 8.2 как-то улучшит ситуацию?

Спасибо!
 

Darlock

Well-known member
04.01.2008
560
1
#2
1 - Насколько помню, приоритет в сторону "кто первый встал того и тапки".
2 - ускорить можно... как вариант, в запросах на чтение данных указывать ключевое слово
3 - Переход на 8.2 - не сильно поможет, там разница будет только в том, что при подключении пользователей, сервер сам определеняет менее загруженный процесс и цепляет к нему. Посмотрите в строну оптимального количества рабочих процессов на 1С сервере.
 
И

Истребитель

#3
Спасибо. Вопрос - можно ли заставить конкретный код выполняться на конкретном процессе? У нас сейчас в районе 20 пользователей (и то не все из них активно работают). Поэтому, я так понимаю, настроен только 1 процесс. Мне кажется, задача решилась бы, если сделать 2 процесса, один - только для фоновых заданий и этой постоянно работающей обработки, другой для юзеров. Или я не прав?
 

Darlock

Well-known member
04.01.2008
560
1
#4
Так не прокатит. Как вариант попробовать программно управлять процессом.
Т.е. в коде в начале работы активировать процесс (устанавливать флаг "Используется") Выполнять код, по завершении этот флаг снимать. Но в любом случае вы активный процесс продолжит работать, пока на нем есть хоть одно соединение клиентское. А они могут появиться, если в процессе работы вашего фонового задания, будут подключаться пользователи.
 

Allexei

Well-known member
02.05.2008
322
1
#5
Вы копните глубже то ;) в чем проблема? Документы проводятся - значит идут блокировки. Если автоматические блокировки то уровень изоляции самый высокий. Перепишите блокировки в ручную. Посмотрите в сторону разделителя данных в регистрах.
 
C

CyberAndr

#6
Может лучше оптимизировать сам код? Например попробовать наиболее "виснущие" части (особенно те которые загружают заказы с сайта) перенести за пределы ОбработкаПроведения(), ло её выполнения ? То есть подготовить некую таблицузначений, в которой что можно будет получено и расчитано заранее, а после её передаем в ОбработкаПроведения и вуаля никто не тормозит?
 

Дайнеко

Well-known member
19.11.2009
951
0
#7
Я тоже полагаю, нечего фантазировать о высоких материях. Надо просто пересмотреть код проведения.