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

Описание

Cron — это специальная система, позволяющая планировать выполнение заданий. Задания выполняются в назначенное время с заданной периодичностью.

Примеры таких заданий:

  • срабатывание напоминаний,
  • фоновое резервное копирование,
  • автоматическая рассылка писем на определенные даты,
  • автоматический сбор данных
  • и многие другие фоновые автоматические операции.

Если вы пользуетесь локальной версией, ваш Cron уже настроен и не нуждается в дополнительной настройке.
В случае использования хостинга, необходима настройка системы Cron. Cron необходимо настроить на минимальный промежуток времени — каждую минуту. Предположим что ваша программа доступна по адресу http://mysite.com/cb, тогда вам необходимо настроить скачивание файла http://mysite.com/cb/cron.php каждую минуту.

Инструкции по настройка системы на хостинге

Если вы пользуетесь локальной версией, ваш Cron уже настроен и не нуждается в дополнительной настройке.

Важно: Если используется локальная версия и в какой-то момент задания Cron перестают выполняться, стоит проверить изменялся ли IP-адрес компьютера, на котором установлена программа. Если он изменялся, то стоит провести действия, описанные в этом разделе документации.

В системе Cron существуют системные задания, например:

  • Резервное копирование (Создание бекапа по расписанию),
  • Напоминания (Формирование напоминаний),
  • Автоматическая отписка (Формирование в локальных версиях программы списка отписавшихся),
  • также задания типа Разослать шаблон ... (для формирования автоматических рассылок).
  • Пользователь может как изменять параметры системных заданий, так и создавать свои задания для любых действий по расписанию. Например, для генерации автоматических отчетов.

Начало работы

Вначале зайдите в раздел "Настройки". Далее выберите в меню настроек пункт "Еще".

img-2023-12-06-16-51-48

И в появившемся списке дополнительных настроек выберите вкладку "Настройки крон".

img-2023-12-07-15-36-27

Далее вы увидите все настроенные задачи Cron.

img-2023-12-06-16-54-59

Для удобства можете воспользоваться фильтром, выбрав необходимые вам параметры.

img-2023-12-06-16-56-13

Есть возможность отключать задание. Это бывает полезно при отладке, например, рассылки СМС.

img-2023-12-06-17-04-27

Далее вы можете редактировать настроенное задание, нажав на название задания, либо добавить новое задание.

img-2023-12-06-17-05-10

Заполнение полей

При создании своего задания, вам необходимо заполнить следующие поля:

img-2023-12-06-17-06-19

Описание — здесь возможно изменение описания процесса задания Cron, более удобное для вас.

Команда — здесь написан код скрипта, который будет задействован при использовании функции задания Cron. Важно: Редактирование этой строки для системных заданий нежелательно.

Период — функция, которая позволяет настроить периодичность выполнения задачи. Если ни один из пунктов выпадающего меню вам не подходит, то следует выбрать пункт "Расширенный".

img-2023-12-04-13-40-24

После выбора пункта "Расширенный", появится строка вида * для написания необходимой вам периодичности. Первая цифра в строке означает минуту, вторая — час, третья - день, четвертая — месяц, пятая — день недели. все значения вносятся в числовом значении, согласно описанию, приведенному ниже. все значения вводятся через пробел. если вы не хотите указывать значение какой-либо области, то следует оставить звездочку.

Минута — укажите число в промежутке "0 — 59". Час — укажите число в промежутке "0 — 23". День — укажите число в промежутке 1 — 31. Месяц — укажите число в промежутке "1 — 12". День недели — укажите число в промежутке "1 — 7",
Также можно указать несколько чисел, через запятую для планирования заданий в определенное время или два числа через тире, чтобы задача происходила в определенный период времени.

Например:

5 13 Задание будет выполнятся каждый день в 13 часов 5 минут.
15 14 1
Задание будет выполняться 1 числа каждого месяца в 14 часов 15 минут.
0 9
1-5 Задание будет выполняться с понедельника по пятницу в 9 часов.
23
/2 Задание будет выполняться в 0:23, 2:23, 4:23 и т. д.
5 4
7 Задание будет выполняться в воскресенье в 4:05.
0 0 1 1
Задание будет выполняться первого января в 0:00.
15 10,13 1,4 Задание будет выполняться в понедельник и четверг в 10:15 и 13:15.
0-59 Задание будет выполняться ежеминутно.
/5 * Задание будет выполняться каждые пять минут.

Поток — введите имя потока, в котором будет выполняться задание. Все задачи группируются при выполнении по потокам, одновременно в потоке может выполняться только одна задача. Т.к. все задания формируются по умолчанию в одном потоке, то они запускаются по очереди, а не одновременно, что помогает уменьшить нагрузку на хостинг. Если вам нужно, чтобы задания выполнялись одновременно, вам следует назначить заданиям разные имена потоков.

Важно: в этой строке желательно ничего не менять

Последнее время запуска — строка отображения последнего запуска задания.

Время завершения работы — строка отображения времени завершения задания

Статус — строка отображения состояния задачи.

Запретить выполнение — функция, которая осуществляет возможность запретить выполнение редактируемого процесса

Запустить только один раз и запретить задание — эта функция осуществляет возможность запустить процесс периодических задач только один раз. Эта функция может быть использована для тестирования.

Максимальное время работы — установите максимальное время выполнения задания. По умолчанию оно равно системному ограничению. По умолчанию максимальное время работы задания равно системному ограничению. В случае если задание выполняется больше времени max_execution_time, возможно задать это время вручную. Возможность изменения максимального времени работы скрипта зависит также от настроек вашего хостинга. На хостинге должна быть разрешена функция set_time_limit. В локальной версии программы никаких настроек функции set_time_limit не требуется, все работает по умолчанию. Для SaaS-аккаунтов увеличить максимальное время работы невозможно.

Также максимальное время работы может использоваться для уменьшения. Например, задание напоминания редко выполняется более 5 мин. В этом случае, если был сбой в системе (например, перезагрузка apache) и задание зависло, то задание будет удалено из выполняющихся заданий через 8 минут после его запуска.

_Cистемное ограничение времени работы (max_executiontime) — системное ограничение максимального времени выполнения задания, данное ограничение нельзя поменять на данной странице

Отслеживать корректность выполнения задания — при включении данной опции система отслеживает корректность завершения скрипта Cron. Проверяются ошибки типа Warning и Error. При возникновении ошибки отправляется письмо на адрес первого пользователя программы (Администратора).

Результат скрипта — можно задать условие, проверяющее результат работы Cron-скрипта. Например, если точно известно, что результат работы должен быть равен слову «Done», то нужно выставить условие «Равно Done».

img-2023-12-04-13-49-45

Лог — нажав на текст "Просмотр n строк", можно увидеть все процессы, которые выполнялись в ходе заданного процесса на данный период.

Отчистить лог — поставив галочку напротив данного пункта, можно отчистить лог.

Справка — описание представления (отчета). Выводится после отчета внизу страницы.

Выполнить сейчас — после нажатия на кнопку откроется окно с логом, в котором по окончании выполнения задания выведется результат.

Выполнив все необходимые настройки, нажимаем "Сохранить".

Раздел "Монитор"

В разделе "Монитор" представлен список текущих выполняющихся заданий, а также заданий которые стоят в очереди на выполнение, сгруппированные по потокам. Вы можете сбросить очередь потоков, в случае если вы точно знаете что задачи завершились не корректно, и задача висит в очереди. Но это не рекомендуется, в любом случае если задание зависло оно будет автоматически завершено в течение 4-х часов.

img-2023-12-06-17-41-07

img-2023-12-06-17-41-21

Система автоматической проверки корректного выполнения заданий в CRON

В CRM появилась возможность установить сигнализатор на те задания CRON, которые выполнились некорректно. Например, вы настроили CRON и какое то время он выполнялся корректно, но потом стал выдавать ошибку. В случае если у вас включен сигнализатор то: данное задание подсветится розовым цветом в общем списке заданий, администратор системы увидит напоминание и получит письмо на свою электронную почту о том, что произошла ошибка.

img-2023-12-06-17-43-38

Опытные администраторы могут также выставить условие, которое будет проверять результат выполнения CRON не только на критические ошибки, но и на присутствие необходимого им текста. Для этого необходимо использовать поле "Результат скрипта". Например, "Результат скрипта" - "Содержит" - "Done". В случае, если условие выполняется, скрипт работает корректно.

img-2023-12-06-17-45-17

Импорт/экспорт с помощью системы Cron

В программе есть возможность делать импорт и экспорт с помощью системы Cron. Подробнее читайте в разделах по ссылкам.

Импорт

Экспорт

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

Удачных настроек!