# 定時任務插件
該插件提供同與 `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 每秒
~~~
- 前言
- 捐贈ESD項目
- 使用篇-通用
- 環境
- 安裝
- 規范
- 壓力測試
- 配置
- 如何設置YML配置
- server配置
- 端口配置
- 項目結構
- 事件派發
- 日志
- 注解
- DI容器
- 自定義進程
- 并發及協程池
- Console插件
- Scheduled插件
- Redis插件
- AOP插件
- Saber插件
- Mysql插件
- mysql事務
- Actuator插件
- Whoops插件
- Cache插件
- PHPUnit插件
- Security插件
- Session插件
- EasyRoute插件
- http路由
- ProcessRpc插件
- AutoReload插件
- AnnotationsScan插件
- Tracing-plugin插件
- MQTT插件
- Pack插件
- AMQP插件
- Validate插件
- Uid插件
- Topic插件
- Blade插件
- CsvReader插件
- hashed-wheel-timer-plugin插件
- 使用篇-HTTP
- 路由
- 靜態文件
- 路由定義
- 修飾方法
- 路由分組
- 資源路由
- 端口作用域
- 異常處理
- 跨域請求
- 路由緩存
- 控制器
- 控制器初始化
- 前置操作
- 跳轉和重定向
- 異常處理
- 請求
- 請求對象
- 請求信息
- request消息
- response消息
- stream消息
- url接口
- 驗證器
- 內置驗證器
- 內置過濾器
- 使用篇-WS
- 如何使用
- 路由
- 使用篇-TCP
- 插件篇-PluginSystem
- 微服務篇-ESDCloud
- CircuitBreaker插件
- SaberCloud插件
- 分布式鏈路追蹤系統
- Consul插件