37 lines
		
	
	
		
			994 B
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			994 B
		
	
	
	
		
			PHP
		
	
	
|  | <?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){ | |||
|  | 
 | |||
|  |         // ...任务达到最大重试次数后,失败了
 | |||
|  |     } | |||
|  | } |