<?php namespace app\job; use app\repository\AccountRepository; use think\queue\Job; class NotifySms { public function fire(Job $job, $data){ //短信通知列表 if ($data) { foreach ($data as $item) { echo sprintf("短信发送成功!phone:%s time:%s \n", $item['mobile'], date('Y-m-d H:i:s')); sleep(mt_rand(1,3)); } } // if ($job->attempts() > 3) { // //通过这个方法可以检查这个任务已经重试了几次了 // echo sprintf('发送短信失败过多'); // } //如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法 $job->delete(); // 也可以重新发布这个任务 // $job->release(3); //$delay为延迟时间 } public function failed($data){ // ...任务达到最大重试次数后,失败了 } }