Cron

Обработка задач cron скриптом php

Добавил в систему класс для управления кроном скриптом php. Причины применения такого решения могут быть разными, сейчас не об этом, но иногда это здорово выручает. Класс расположен в system/core/cron/cron.php Один из примеров его применения, это переодический вызов из утилиты linux. Для этого нужно будет создать файл в корне проекта с именем cron аналогичный index.php , но для константы ENTRANSE указать значение cron 

<?php
date_default_timezone_set('Europe/Saratov');
define('INDEX', true);
define('ROOT', str_replace('\\', '/', __DIR__));
define('ENTRANSE', 'cron');
define('ARGV', $argv);
define('APP_NAME', 'app');
define('APP', ROOT . '/' . APP_NAME);
define('SYSTEM', ROOT . '/system');

require_once ROOT . '/system/system.php';

Далее в директории приложения нужно создать файл app/route/cron.php 

<?php 
namespace route\crone;
use system\core\cron\cron;

$cron = new cron();
$cron->namespace('app/controllers/cron');
$cron->name('test')->daily(19)->controller('test', 'index');
$cron->name('test5')->min(10)->controller('test5', 'index');

exit('exit');

Здесь нужно создать объект класса cron, указать namespace и перечислить нужные процессы.

В метод name необходимо передать уникальное имя процесса, далее вызвать один из методов определяющих переодичность, их всего пять

  • min() - Принимает количество минут в паузе
  • hour() - Принимает количество часов в паузе
  • daily() - Ежедневно, принимает час в который нужно выполнить комманду
  • weekly() - Еженедельно, принимает день и час для выполнения
  • monthly() - Ежемесячно, принимает день и час для выполнения

В конце вызавается метод controller где указывается класс и метод контроллера.

 

Grewi 2024