# TimerCallBack SD专用的延迟队列,队列是基于CatCache落地的重启服务器不会丢失。 需要开启CatCache。 ``` $token = yield TimerCallBack::addTimer(2,TestModel::class,'testTimerCall',[123]); public function testTimerCall($value,$token) { var_dump($token); TimerCallBack::ack($token); } ``` 调用方法很简单,第一个参数是延迟时间单位是秒。 后面为调用的Model名,方法,参数。 testTimerCall是TestModel的一个函数,$value是由上面传递的123,$token是用作消费消息的。 默认token都会作为最后一个参数传递进来。 一定要记得调用 TimerCallBack::ack,否则会每隔1s调用一次。 yield TimerCallBack::addTimer(2,TestModel::class,'testTimerCall',[123]);也会返回一个token,可以拿此token进行ack用做于取消调用。 优势在于可以延时调用,不影响原来逻辑的运行,支持ACK,传递的参数可以是对象,不需要额外序列化,重启服务器不会丢失会恢复执行。