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