Cron — классический демон (компьютерная программа в системах класса UNIX), использующийся для периодического выполнения заданий в определенное время. Название cron образовано от греческого слова χρόνος (хрόнос) — время (по-английски — cronos). (https://ru.wikipedia.org/wiki/Cron). У нас свой собственный разработанный аналог. В нем описаны все возможные скрипты, которые можно настраивать для определенного клиента на определенное время выполнения. Ниже представлен примерный вид интерфейса программы Cron.
В верхней панели инструментов есть ряд функций и кнопок: Кнопка с изображением голубых стрелок по кругу позволяет обновить список команд в Cron для получения актуальной информации по их выполнению и состоянию;
Поисковое поле «Задачи» позволяет путем набора минимум 3-х символов найти совпадения из всего списка возможных задач в программе Cron. Поиск возможно уточнять путем дополнительного ввода символов после пробела. Сброс поиска происходит путем нажатия клавиши «Esc»;
Кнопка с изображением белого листка с карандашом позволяет открыть выбранную задачу из списка в Cron для редактирования параметров ее запуска. Действие данной кнопки аналогично двойному щелчку левой клавиши мыши по нужной задачи в Cron;
Кнопка «Запустить» позволяет запустить выполнение нужной и выбранной команды в Cron вручную, не дожидаясь времени автоматического ее выполнения. Данная кнопка недоступна в случае если задача уже выполняется;
Кнопка «Остановить» позволяет остановить работу выбранной команды в Cron не дожидаясь окончания ее выполнения и самостоятельной остановки. Кнопка доступна только если команда в данный момент выполняется;
Кнопка «Открыть лог задачи» позволяет по выбранной задаче в Cron открыть лог-файл журнал ее выполнения. Лог открывается в отдельной вкладке браузера.
Кнопка «Системный лог» позволяет открыть лог-файл работы самой программы Cron для изучения журнала его работы;
Надпись «На сервере..» позволяет посмотреть время на сервере, где установлена программа Cron. Именно по данному времени происходит отработка задач из Cron.
Далее ниже меню идет сама таблица программы Cron, которая состоит из таких колонок как: описание выполняемой задачи, статуса включена задача или выключена, минуты, часы, день календарный или день недели когда задача выполняется, актуальный статус работы задач по Cron и last-log — последняя запись в лог-файле каждой задачи. Статусы выполнения задач могут быть следующие:
Завершен успешно — отображается зеленым цветом с пометкой OK и временем последнего выполнения;
Завершен успешно, но прошло после успешного завершения более суток — отображается черным цветом и означает, что задача выполнялась более суток назад и завершилась успешно. Обычно подобным цветом отображаются задачи, по которым выполнение запланировано с большим промежутком времени;
Не запускалась — отображается серым цветом и означает, что данная задача отключена в программе Cron;
Ошибка выполнения — отображается красным цветом и означает, что последнее выполнение задачи произошло с ошибкой и в колонке last-log будет написана ошибка;
Выполняется — отображается жирным синим шрифтом и означает, что данная задача в программе Cron на данный момент выполняется;
Ожидает запуска — отображается синим не жирным цветом и означает, что задача запущена по Cron, но ожидает окончания выполнения другой задачи после чего перейдет в состояние «выполняется».
Настройка выполнения задачи осуществляется в окне «Настройка задачи». Открыть его можно путем двойного щелчка левой клавиши мыши или выбрав нужную задачу и нажав в панели инструментов кнопку с изображением белого листка с карандашом. После чего откроется окно, пример которого показан ниже.
В данном окне есть поля для просмотра (закрашены серым цветом), а есть для редактирования (белые). Для просмотра поля наименования класса задачи, наименования функции и наименования лог-файла, эти поля изменять запрещено. Для редактирования открыты следующие поля и галки:
Минуты — в какие минуты времени будет выполняться данная задача. Могут быть как четко указанные минуты — тогда скрипт будет работать каждый раз, как время будет показывать такие минуты, так и минуты со знаком * (например, *15) — такие задачи будут отрабатывать каждые установленные минуты (например, каждые 15 минут);
Часы - в какие часы времени будет выполняться данная задача. Могут быть как четко указанные часы — тогда скрипт будет работать каждый раз, как время будет показывать такие часы, так и часы со знаком * (например, *3) — такие задачи будут отрабатывать каждые установленные часы (например, каждые 3 часа);
Дни - в какие календарные дни будет выполняться данная задача. Могут быть как четко указанные дни — тогда скрипт будет работать каждый раз, как на календаре будет данное число, так и дни со знаком * (например, *3) — такие задачи будут отрабатывать каждые установленные дни (например, каждые 3 дня);
Дни недели - в какие дни недели будет выполняться данная задача. Могут быть как четко указанные дни, так и период дней. 1 — понедельник, 7 — воскресенье. Например, необходимо чтоб задача выполнялась только в будние дни, следует написать 1-5;
Максимальное время на выполнение (мин) — позволяет установить максимальное время на выполнение задачи, для того чтоб в случае превышения времени заадча останавливалась с ошибкой. По умолчанию у всех задач установлено 15 минут;
Галка «Перед запуском ожидать завершения других задач» - следует устанавливать если необходимо чтоб в момент отработки задачи никакие другие задачи не выполнялись с целью пресечения появления конфликта в работе с данными;
Поле «Описание» необходимо для краткого текстового комментария к задаче в случае необходимости;
Галка «Задача отключена» устанавливается, если выполнение задачи не требуется.
После изменения каких-либо параметров в настройке следует нажать
Большинство задач уже имеют предустановленные оптимальные значения запуска, которые все же можно подредактировать вручную.
Задачи в программе Cron сгруппированы по разделам по различной направленности выполнения. Есть задачи, работающие по интеграции со сторонними API, есть касающиеся аналитической базы данных, контроля за работоспособностью системы, различные оповещения, почтовый робот, разные скрипты выгрузок и прочие. Ниже будет описано про все возможные задачи в Cron:
Всплывающее напоминание в CRM — скрипт предназначен для регулярного напоминания о незаписанных событиях в CRM;
Поиск пропущенных входящих звонков – после завершения выполнения скрипта в ленту событий попадают пропущенные звонки, с описанием «Новый пропущенный»;
Поиск пропущенных входящих звонков — скрипт проверяет были ли пропущенные звонки от клиентов и если были делает событие о пропущенном в ленте событий;
Поиск неотработанных звонков (за последние 24 часа) — скрипт, который ищет за последние 24 часа не отработанные звонки (без фактического действия) и выводит их в ленту событий;
Триггерная рассылка — делает выборку ЧК согласно настроенным и активированным триггерам. Всего генерируется 4 вида событий: Исходящий звонок (планируемое действие в CRM клиента) - генерируется при выборе ответственного «Менеджер отдела продаж»; Событие «Триггерная рассылка» в ленте событий - генерируется при выборе ответственного «Менеджер отдела продаж» или «Сервис менеджер»; Сообщение клиенту (отправляется в МП, при не удаче СМС, в будущем нужно добавить whatsapp) - генерируется при выборе ответственного в «Fitsoft»; Email сообщение управляющему или координатору - генерируется при выборе ответственного «Управляющий» или «Координатор»;
Триггерная рассылка email - отправляет сообщения координаторам или управляющему в указанное в триггере время.
Проверка детей без родителей не на ПТ и Продлёнке - проверяет присутствие ребенка в клубе без родителя, который мог зайти по qr-коду, при этом находится в клубе ранее 40 минут до начала ПТ, продлёнки и более 40 минут после, или вообще без данных услуг. См. Рецепция > Контракты > QR-код для входа в клуб.
Обновление ПО – скрипт позволяет обновить программу до актуальной версии;
Обновление поздравлений -
Проверка очереди смс – скрипт проверяет очередь смс-сообщений и отправляет сообщения если они в очереди есть;
Смс руководителям и управляющим клубов - скрипт позволяет отправлять смс руководителям и управляющим клубов об опозданиях сотрудников на работу. Работает проверка на опоздания на дежурства, групповые занятия и персональные тренировки;
Оповещение db-admin@ о сбоях в CRON - если по какой-либо причине какой-то скрипт не выполнился, то на почту поступает информация о сбоях в скриптах.
Автосписание услуги (будни) — скрипт, который производит списание тренировок в случае отсутствия подтверждающего или отклоняющего действия от члена клуба на PUSH-сообщение в будние дни;
Автосписание услуги (выходные) — скрипт, который производит списание тренировок в случае отсутствия подтверждающего или отклоняющего действия от члена клуба на PUSH-сообщение в выходные дни;
Запрос на списание услуг — скрипт, который отправляет PUSH-уведомления членам клуба на подтверждение списания персональной тренировки;
Отложенная публикация новости — скрипт предназначен для опубликования или снятия с публикации новости в мобильном приложении, для которой было выставлено конкретное время появления в мобильном приложении или время снятия с публикации;
Закрытие дня – скрипт закрывает день по всему клубу. Предназначен для пересчета дней по контрактам/услугам;
Авто-продление контрактов — скрипт предназначен для автопродления контрактов в случае рекуррентного платежа по рассрочке с сайта;
Платеж — скрипт предназначен для проверки платежа с сайта и проведении его по ККМ;
Автозвонок с DTMF (запуск демона) — скрипт, который проверяет что демон звонка для определения уровня удовлетворенности клиента запущен и работает;
Автозвонок с DTMF (остановка демона) — скрипт, который останавливает работу демон звонка для определения уровня удовлетворенности клиента чтоб он не звонил в ночное время;
Рассылка сообщений — скрипт, который рассылает смс-сообщения с днем рождения клиента, триггерные сообщения или другие;
Робот АТС Манго — скрипт, который отправляет номера телефонов клиентов на обзвон робота, а так же забирает записи ранее состоявшихся разговоров.