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

Тема в разделе "1C и всё что с ней связано", создана пользователем Истребитель, 17 дек 2012.

Наш партнер Genesis Hackspace
  1. Истребитель

    Истребитель Well-Known Member

    Регистрация:
    9 июн 2010
    Сообщения:
    110
    Симпатии:
    0
    Добрый день!

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

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

    Спасибо!
     
  2. Darlock

    Darlock Well-Known Member
    1C Team

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

    Истребитель Well-Known Member

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

    Darlock Well-Known Member
    1C Team

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

    Истребитель Well-Known Member

    Регистрация:
    9 июн 2010
    Сообщения:
    110
    Симпатии:
    0
    Понял, спасибо.
     
  6. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    Вы копните глубже то ;) в чем проблема? Документы проводятся - значит идут блокировки. Если автоматические блокировки то уровень изоляции самый высокий. Перепишите блокировки в ручную. Посмотрите в сторону разделителя данных в регистрах.
     
  7. CyberAndr

    CyberAndr Гость

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

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Я тоже полагаю, нечего фантазировать о высоких материях. Надо просто пересмотреть код проведения.
     
Загрузка...

Поделиться этой страницей