teknasyon/crond

分布式 Cron 工作进程

2.0.1 2023-01-19 13:52 UTC

This package is auto-updated.

Last update: 2024-09-19 17:27:41 UTC


README

PHP 分布式 Cron 守护进程

要求

  • PHP 8.0+
  • aws/aws-sdk-php
  • dragonmantank/cron-expression
  • psr/log

用法

  • 设置您的 cron 配置
$crons = [
    'my_cron_id1' => [
        'expression' => '* * * * *',
        'cmd' => '/usr/bin/php /pathto/myproject/mycron.php',
        'lock' => 0 //No need lock
    ],
    'my_cron_id2' => [
        'expression' => '*/10 * * * *',
        'cmd' => '/usr/bin/php /pathto/myproject/minutecron.php',
        'lock' => 1
    ],
    'my_cron_id2' => [
         'expression' => '* * * * *',
         'cmd' => '/usr/bin/php /pathto/myproject/infinitecron.php' // Like lock:1
    ]
]
  • 创建您的 Locker 类 \Teknasyon\Crond\Locker\MemcachedLocker 或 \Teknasyon\Crond\Locker\RedisLocker
  • 使用 cron 配置和 Locker 类创建 \Teknasyon\Crond\Daemon
<?php

use Teknasyon\Crond\Locker\RedisLocker;
use Teknasyon\Crond\Daemon;

try {
$crond = new Daemon($cronConfig, $locker);
$crond->setLogger($myPsrLoggerInterfacedObj);
$crond->start();

} catch (\Exception $e) {
    //Error handling
}

// ...