Планировщик задач ИИС

Настройка планировщика

В АИС "Комэкс мои документы" есть необходимость выполнять некоторые задачи в отложенном режиме. это позволяет не привязывать выполнение "тяжелых" задач к работе операторов, тем самым ускоряя работу операторов. Это такие задачи как

  • очистка папки tmp
  • отправка аналитики в систему Комекс BI (если используется)
  • запрос оценок по операторам в МКГУ (если используется)
  • очистка таблицы логов запросов СМЭВ3
  • генерация префиксов номеров дел (если используется)
  • отправка информации об оказанных услугах в АИС Полтава (если используется)
  • закрытие кассы в конце текущих суток (если используется)
  • автоматическая отправка пакетов МДМ
  • очистка "старых" записей из таблицы sys_message.message
  • удаление документов из дел по истечении 45 суток(по настройке)

Возможно добавление новых со временем. Для того чтобы эти задачи запускались и выполнялись необходимо произвести настройку запуска команды schedule:run каждую минуту на сервере с установленным mfc-core. Запись для планировщика cron будет выглядеть следующим образом:

* * * * * php '/путь к mfc-core/artisan' schedule:run >>/dev/null 2>&1

Важно!!! Для корректной работы механизма и для предотвращения конфликтов с правами на файлы необходимо, что бы пользователь, от имени которого будет выполняться cron, совпадал с пользователем от которого работает служба Apache. Например www-data.

Для настройки crontab от имени пользователя www-data выполните следующую команду в командной строке

sudo su -c "crontab -e" www-data -s /bin/bash

После запуска вышеуказанной команды большинство задач не выполнятся, в поставятся в очередь на выполнение. Чтобы задача выполнилась необходимо запустить очередь.

Настройка обработчика очереди

Обработчик очереди запускается командой

php '/путь к mfc-core/artisan' queue:work database

В данном случае database может не указываться если в конфиге программы mfc-core (файл .env) указана директива QUEUE_CONNECTION=database.

Схема работы такая: schedule:run добавляет задачу в запланированные, queue:work периодически проверяет есть ли запланированные задачи и выполняет их.

Обработчик очереди запустившись не завершает работу, он всё время работает в режиме ожидания новых задач и при появлении таковых выполняет их и продолжает ждать новых. Но иногда случается так что обработчик очереди отключается(ошибки в ОС(кончилось место, отключилась сеть...), ошибки в АИС....) в таком случае его необходимо перезапускать. Чтобы не делать этого вручную используется программы типа supervisor

Для Windows можно создать службу. Для этого скачайте архив queue-laravel.zip. Распакуйте в каталог с mfc-core. В que-start.bat и que.xml исправьте пути на ваши. Запустите cmd от имени администратора и выполните que.exe install. Должна создаться служба queue-laravel