Перейти к содержимому
docs.
WORKSPACE

Документации проектов

Открыть каталог проектов
Localzet ServerАсинхронный PHP-серверTriangleФреймворк и компоненты✓MIX IDИдентификация и интеграцииHack APIПубличные API хакатонаACNПроект и компонентыUserlay / UserNetПроект и компонентыAxiomПроект и компонентыМесседжинг через почтуПроект и компонентыLWT / JWT / JOSEПроект и компонентыФинансовая аналитика KimaiПроект и компонентыМультипарадигмальная БДПроект и компонентыZorin PlatformПроект и компонентыZorin TrustПроект и компонентыFloraScope / VegwatchПроект и компонентыaegis-qДокументация проектаaevumdbДокументация проектаauditДокументация проектаauto-invest-managerАвтотрейдерcaine-companionДокументация проектаcertbot-cloudflareДокументация проектаClusterLocalzet Server / ClustercmdveilДокументация проектаConsolePHP CLICronБиблиотеки Localzet Serverdata-connectorДокументация проектаdevice-controlDevice Controlenn-projectДокументация проектаEventsБиблиотеки Localzet ServerflowsintДокументация проектаforgeДокументация проектаHttpClientБиблиотеки Localzet ServerinterpreterСобственный языкinvariaДокументация проектаkeynotesДокументация проектаknotrouteKnotroutelaravel-personal-analyticsДокументация проектаlocalzet-osДокументация проектаmeridianДокументация проектаMQTTБиблиотеки Localzet Servernano-kernelСобственная ОСNoterДокументация проектаpersonal-analyticsДокументация проектаProxyБиблиотеки Localzet ServerPSRБиблиотеки Localzet ServerPSR-7Библиотеки Localzet Serverrschs-monitorДокументация проектаsemsealДокументация проектаshardsealДокументация проектаSocketIOБиблиотеки Localzet ServerSOCKS5Библиотеки Localzet Serverstandalone-analyticsДокументация проектаstatic-php-cliДокументация проектаStorageБиблиотеки Localzet ServersutureДокументация проектаtempoweaveДокументация проектаttsСинтез речиTunnelБиблиотеки Localzet Serverui-kitUI KitvesperДокументация проектаWebAnalyzerWebAnalyzerzorin-access-brokerДокументация проектаzorin-authority-brokerДокументация проектаzorin-authority-sdk-phpДокументация проектаzorin-authority-sdk-pythonДокументация проектаzorin-authority-sdk-tsДокументация проектаzorin-client-intelДокументация проектаzorin-device-core-aospДокументация проектаzorin-host-agentДокументация проектаzorin-native-labДокументация проектаzorin-nodeДокументация проектаzorin-opsДокументация проектаdonstu-python-sdkДокументация проектаfloortraceFloortraceserver-rsLocalzet Server / Cluster
Каталог

Triangle Cron подключает Localzet Cron к жизненному циклу Triangle и создаёт отдельный процесс планировщика. Компонент читает список заданий из конфигурации cron и создаёт экземпляр localzet\Cron для каждой записи с непустыми rule и callback.

Окно терминала
composer require triangle/cron

Пакет объявляет PHP ^8.1, triangle/engine ^8.1, triangle/events ^1.0 и localzet/cron ^1.0. Для развёртывания используйте совместимый lockfile приложения: установка компонента не делает произвольные новые версии Engine/Server совместимыми со старым Cron.

Файл cron.php возвращает список заданий:

return [
[
'name' => 'refresh-metrics',
'rule' => '* * * * *',
'callback' => static function (): void {
refreshMetrics();
},
],
];

refreshMetrics() в примере — функция вашего приложения, доступная в процессе Cron. Вместо неё можно передать конкретный callable приложения. Имя задания необязательно, по умолчанию используется пустая строка.

Autoload::start создаёт процесс с именем Cron и числом workers 1 только для команды, которую Engine распознаёт как управляющую. Задания регистрируются в onServerStart этого процесса. Они не создаются заново при каждом HTTP-запросе.

Сам компонент не разбирает cron-выражения и не выполняет задания в отдельной очереди: это делает установленная версия localzet/cron. Время запуска, обработку секунд и ограничения parser сверяйте с документацией именно этой зависимости.

Callback выполняется в процессе планировщика. Долгая блокирующая работа задерживает его event loop; для длительных операций callback должен передавать ограниченное задание отдельному worker через выбранную приложением очередь.

Один worker на один экземпляр приложения не означает единственный scheduler во всём кластере. Если запускаются несколько копий приложения, задание может выполняться в каждой. При необходимости используйте прикладную распределённую блокировку и идемпотентную обработку.

Список читается при запуске процесса. Изменение файла не создаёт новые задания в уже работающем scheduler без перезагрузки соответствующего процесса.

Записи без rule или callback пропускаются. Другие значения передаются в Cron без предварительной проверки компонента: ошибка правила или callback может проявиться при регистрации либо выполнении. Перед запуском проверяйте конфигурацию в среде приложения.

Компонент не предоставляет журнал выполнения, retries, историю пропущенных запусков или компенсацию после остановки. Обработку ошибок и результат бизнес-операции задаёт callback приложения.

Triangle\Cron\Autoload::start(?string $arg = '', ?localzet\Server $server = null): void реализует AutoloadInterface Engine. Аргумент команды проверяется через Engine Autoload::isManageCommand. Переданный Server не используется как процесс планировщика: при подходящей команде создаётся новый localzet_start(‘Cron’, 1).

В onServerStart читается config('cron', []). Для каждой записи с непустыми rule/callback вызывается конструктор:

new localzet\Cron($task['rule'], $task['callback'], $task['name'] ?? '');

Это схема вызова внутри компонента, а не дополнительный код, который нужно повторить в приложении: повтор создаст дублирующиеся задания.

ПолеНазначение
ruleCron-выражение, передаваемое зависимому планировщику
callbackВызываемый обработчик задания
nameНеобязательное имя; стандартное значение — пустая строка

Проверка empty выполняется только для rule и callback. Здесь нет схемы конфигурации, разрешения обработчика через контейнер, timezone на уровне задания или retry policy.

Install копирует конфигурацию компонента в приложение при отсутствии целевого файла. Поставляемая cron-конфигурация — пустой массив. Включение пакета само по себе не создаёт бизнес-заданий.

Создание, удаление и запуск экземпляров Cron относятся к localzet/cron. Компонент Triangle не добавляет публичный реестр задач, CLI управления отдельным заданием или распределённый lock.