<?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){

        // ...任务达到最大重试次数后，失败了
    }
}