Планировщик задач ИИС
Настройка планировщика
В АИС "Комэкс мои документы" есть необходимость выполнять некоторые задачи в отложенном режиме. это позволяет не привязывать выполнение "тяжелых" задач к работе операторов, тем самым ускоряя работу операторов. Это такие задачи как
- очистка папки 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