В системе реализованы автоматически запускаемые cron задачи. Синтаксис расписаний задается так же как в любой unix системе(Минуты Часы Дни Месяцы Дни недели). Но в данном случае это любые uri запросы на текущий домен, с любыми http методами(POST/PUT/GET/DELETE), с любыми устанавливаемыми заголовками(content-type), и данными тела запроса. Крон задачи можно выполнять от имени других пользователей, если для него включена авторизация x-auth-token и его модель включена и является подчиненной вам по системному весу.
Вы можете включать и отключать определенный функционал проекта по заданному расписанию, или например менять шаблоны страниц с разными дизайнами. Для того, чтобы посмотреть какие именно данные передать в теле запроса для cron задачи при исполнениии определённой модели, включите запись логов действий для свой группы, выполните это действие вручную и посмотрите параметры тела нужного вам запроса в логах(id,action,table)
Автоматизируйте:
Кроме методов http вы можете поставить на cron любую cli команду, которая будет выполняться через exec
Вы можете запустить любую задачу из CLI перейдя в каталог public_html и вызвав
где 777 - id вашей задачи.
Задачу можно запустить из админки по кнопке, даже если она отключена, она будет выполнена однократно, без учета натроенных для неё потоков.
Для каждой задачи вы можете устанавливать дополнительные настройки
Если вы не понимате зачем это вам, не настраивайте потоки, оставьте их по умолчанию и пользуйтесь cron задачами в их классическом варианте.
За техническую реализацию встроенного cron отвечает файл public_html/cron.php и класс Task/Cron.php
Файл public_html/cron.php - запускает сам себя curl http запросом каждую минуту загружая метод load(), который в свою очередь посылает короткие независимые cli запросы на выполнение задач к public_html/cron.php, в котором происходит выполение каждой задачи по отдельности. Таким образом задачи полностью распарралеливаются и не зависят по времени выполнения друг от друга, ведь их может быть весьма большой стек и они могут быть весьма ресурсоемкие. Ежеминутно вызывается Wrong\Task\Cron::set_run_at() который проставляет всем задачам следующее(очередное) их время выполнения.
Таким образом реализуется бесконечный ежеминутный цикл, с выполнением задач которые подходят под расписание.
В классе Task/Cron.php реализован контроль за потоками и нагрузкой устанавливаемыми для каждой задачи.
Когда автозапуск ещё не активирован - он активируется при помощи скрытой картинки, которая инжектится в include/session.php при помощи js стека(не всегда, а только если не активирован цикл автозапусков). Это не совсем надежно, если на вашем сайте мало посетителей, т.к. иногда http запрос может не выполниться и цикл самозапуска public_html/cron.php прервется. Бывает весьма редко, и если на сайте совсем никто не бывает, в основном цикл работает как часы. Но чтобы повысить надежность, вы можете дополнительно поставить выполнение public_html/cron.php на свой системный cron раз минуту, вреда от этого не будет (ведь дополнительные потоки блокируются), как скорее всего и пользы.