ea
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
/**
|
||||
* kiri-crontab 默认配置
|
||||
* 可通过环境变量或应用配置覆盖
|
||||
*/
|
||||
return [
|
||||
// Redis 连接配置
|
||||
'redis' => [
|
||||
'host' => env('CRONTAB_REDIS_HOST', '127.0.0.1'),
|
||||
'port' => (int)env('CRONTAB_REDIS_PORT', 6379),
|
||||
'auth' => env('CRONTAB_REDIS_AUTH', ''),
|
||||
'prefix' => env('CRONTAB_REDIS_PREFIX', ''),
|
||||
'databases' => (int)env('CRONTAB_REDIS_DB', 0),
|
||||
'timeout' => (int)env('CRONTAB_REDIS_TIMEOUT', 30),
|
||||
],
|
||||
|
||||
// 调度器配置
|
||||
'scheduler' => [
|
||||
// 调度器 tick 间隔 (秒)
|
||||
'tick_interval' => (int)env('CRONTAB_TICK_INTERVAL', 1),
|
||||
// 任务执行超时时间 (秒)
|
||||
'task_timeout' => (int)env('CRONTAB_TASK_TIMEOUT', 300),
|
||||
// 主锁 TTL (秒)
|
||||
'lock_ttl' => (int)env('CRONTAB_LOCK_TTL', 60),
|
||||
// 主锁续期间隔 (秒)
|
||||
'lock_renew_interval' => (int)env('CRONTAB_LOCK_RENEW_INTERVAL', 15),
|
||||
// 是否启用协程并发执行多个到期任务
|
||||
'concurrent_tasks' => (bool)env('CRONTAB_CONCURRENT', true),
|
||||
// 并发任务最大数量
|
||||
'max_concurrent' => (int)env('CRONTAB_MAX_CONCURRENT', 10),
|
||||
// PID 文件路径 (独立模式)
|
||||
'pid_file' => env('CRONTAB_PID_FILE', ''),
|
||||
// 日志文件路径 (独立模式)
|
||||
'log_file' => env('CRONTAB_LOG_FILE', ''),
|
||||
],
|
||||
|
||||
// 注册的任务列表 (配置模式,expression 字符串格式)
|
||||
// 注解模式通过 #[Crontab] 在 handle() 方法上声明,kiri-core Scanner 自动发现
|
||||
// 表达式: every:60 | every:5m | every:1h | daily:03:00 | hourly:30 | cron:*\/5 * * * * | at:时间戳
|
||||
// 每个任务需实现 TaskInterface 接口
|
||||
'tasks' => [
|
||||
// 示例:
|
||||
// [
|
||||
// 'class' => App\Task\CleanLogTask::class,
|
||||
// 'name' => '清理日志',
|
||||
// 'expression' => 'daily:03:00', // 每天 03:00
|
||||
// ],
|
||||
// [
|
||||
// 'class' => App\Task\HeartbeatTask::class,
|
||||
// 'name' => '心跳检测',
|
||||
// 'expression' => 'every:60', // 每 60 秒
|
||||
// ],
|
||||
],
|
||||
];
|
||||
Reference in New Issue
Block a user