PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

使用官方redis类进行实现简单的消息队列

管理员 2024-12-14
Fastadmin
26

进入该类配置redis 密码 记得安装phpredis扩展 本人使用的是6.2版本
image.png

在redis类增加以下4个方法 进行左近右出规则

 /**     * 在list的左边添加值为$value的元素     * @access public     * @param $key 索引     * @param $value 值     * @return int     */    public function lPush($key,$value){        return $this->handler->lPush($key,$value);    }    /**     * 在list的右边取值值为$value的元素     * @access public     * @param $key 索引     * @return int     */    public function lPop($key){        return $this->handler->lPop($key);    }    /**     * 在list去除重复值     * @access public     * @param $key 索引     * @return int     */    public function lrem($key1,$key2){        return $this->handler->lrem ($key1,$key2);    }    /**     * 在list判断     * @access public     * @param $key 索引     * @return int     */    public function lLen($key){        return $this->handler->lLen ($key);    }

然后使用自己的业务类进行调用处理即可

   /**     * 插入队列     * obj 数据表对象     */    public function savereids($obj,$key){        $redis=new Redis();        $limit=1;        $chebox=false;//停止条件        while ($chebox==false) {            $data=$obj->page($limit,100)->field('id')->select();            if(!empty($data)){                foreach ($data as $k=>$v) {                    $redis->lPush($key,$v['id']);                }            }else{                $chebox=true;            }            $data=[];            $limit+=1;        }        return 200;    }    /**     * 出队     */    public function getrediskey($key){        $redis=new Redis();        $data=$redis->lPop($key);        if($data!=false){            return $data;        }else{            return 0;        }    }    /**     * 返回队列长度     */    public function getredislist($key){        $redis=new Redis();        $data=$redis->lLen($key);        if($data!=false){            return $data;        }else{            return 0;        }    }```            最后进行定时任务,判断当天是否有推送的任务 如果有则进行入队操作、然后在根据推送任务的时间到达后开始发送信息    需要注意执行发送时候记得要放行php的内存ini_set('memory_limit','-1');  -1则是不限制、如果需要限制则填写 例如 1024M内存

希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部