我用队列发送电子邮件,为什么失败的不会重新发送呢?

浏览:611 发布日期:2017/10/25 分类:求助交流

我用队列发送电子邮件,失败的我重新加入队列,为什么失败的不会重新发送呢?public function email(){        
        $redis = new \Redis();
        $redis->connect('127.0.0.1',6379);
        //$redis->set('test','hello world!');
        //echo $redis->get("test");
        
        $redis_name = 'fayoujian';        
        for($i=10000;$i<=100100;$i++){
             $email = $i."@qq.com";             
            //获取一下redis里面已有的数量
            $num = 10;
            //如果当天人数少于10的时候,则加入这个队列
            if($redis->lLen($redis_name)<10){
                $redis->rPush($redis_name,$email);
                //$result  = sendMail($email,'你好啊','周末愉快!');
                echo $email."发送成功!";
            }else{
                //如果邮件已经达到十个,则返回发送已完成
                //echo "发送结束!";
            }
        }
        
        if(IS_POST){
            $email = '';
            //$email   = $_POST['email'];
            $zhuti   = $_POST['zhuti'];
            $content = $_POST['content'];
            
           /* for($i=10000;$i<=10010;$i++){
                $email = $i."@qq.com"; 
                $result  = sendMail($email,'你好啊','周末愉快!');
            }
           */ 
            
           /* 
            if($result){
                $arr['status'] = 1;
                $arr['msg'] = '发送成功!';
            }else{
                $arr['status'] = 0;
                $arr['msg'] = '发送失败!';
            }
            $this->ajaxReturn($arr);*/
        }else {
            $info = $this->fuwuqi();
            //dump($res);
            $this->assign('info',$info);
            $this->display();
        }

        
    }
    
    public function get_redis(){
        set_time_limit(0);
        $redis = new \Redis();
        $redis->connect('127.0.0.1',6379);
        $redis_name = 'fayoujian';
        //死循环
        while(1){
            //从队列最左侧取出一个值来
            $user = $redis->lPop($redis_name);
            //然后判断这个值是否存在
            if(!$user || $user == 'nil'){
                sleep(20);
                continue;
            }
            //切割出时间,uid
            $res  = sendMail($user,'朋友你好啊','周末愉快!');
           
            //数据库插入的失败的时候的回滚机制
            if(!$res){
                $redis->rPush($redis_name,$user);
            }
        
            sleep(20);
        }
        //释放一下redis
        $redis->close();
    }
最佳答案
评论( 相关
后面还有条评论,点击查看>>