teknasyon / crond
分布式 Cron 工作进程
2.0.1
2023-01-19 13:52 UTC
Requires
- php: >=8.0
- ext-json: *
- dragonmantank/cron-expression: 3.3.*
- psr/log: ^2.0 || ^3.0
Requires (Dev)
- phpunit/phpunit: 9.5.*
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 } // ...