多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 定时任务插件 该插件提供同与 `linux crontab` 相同用法的定时任务,` ESD` 默认已加载本插件可直接使用。 ## 插件使用 在配置文件中增加如下内容 ~~~ scheduled: min_interval_time: 1000 (最小执行间隔 毫秒) scheduled_tasks: test:(任务名称) name: test (同任务名称) expression: '* * * * * *' class_name: app\task\test (需要执行的类) function_name: test(需要执行该类内的某个方法) process_group: all(在所有进程中执行,该配置后续会有变动) ~~~ 配置好后重新启动服务即可。 ## 注解使用 >[info] 因为该插件需要在框架启动时载入配置文件,所以需要添加注解 @Component,以便在框架启动时生成上述配置文件。 然后在需要使用定时任务的函数中,添加 @Scheduled 注解,参数 cron 为定时的规则。 ~~~ /** * @Component() * Class TestScheduledTask * @package ESD\Plugins\Scheduled\ExampleClass */ class TestScheduledTask { use GetLogger; public function test() { $this->info("这是一次定时调用"); } public function dynamic() { $this->info("这是一次dynamic定时调用"); } /** * @Scheduled(cron="* * * * * *") */ public function ann() { $this->info("这是一次注解定时调用"); } } ~~~ ## 定时规则 该规则与`linux Crontab` 一致,唯一不同的是可以秒级定时。 ~~~ //添加调度任务 //- - - - - - - //* * * * * * //| | | | | | //| | | | | | //| | | | | +----- day of week (0 - 7) (Sunday=0 or 7) //| | | | +---------- month (1 - 12) //| | | +--------------- day of month (1 - 31) //| | +-------------------- hour (0 - 23) //| +------------------------- min (0 - 59) //+--------------------------- sec (0 - 59) ~~~ ## 预定义 expression ~~~ @yearly 每年 @annually 每年 @monthly 每月 @weekly 每周 @daily 每天 @hourly 每小时 @minutely 每分钟 @secondly 每秒 ~~~