• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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

Истребитель

Добрый день!

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

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

Спасибо!
 
D

Darlock

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

Истребитель

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

Darlock

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

Allexei

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

CyberAndr

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

Дайнеко

Я тоже полагаю, нечего фантазировать о высоких материях. Надо просто пересмотреть код проведения.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!