用php-redis给全部用户发送邮件,数据量很大,思路应该是什么样的

查看:98
本文介绍了用php-redis给全部用户发送邮件,数据量很大,思路应该是什么样的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

目前做的有点懵。

在php代码里把所有需要请求接口的数组都放进redis 存储里面,
然后用循环把数组brpop出来,但是这个过程不都是靠php代码来执行的吗?

php超时之后整个进程还不是得断掉?

解决方案

楼上正解。
这么打比方吧。 Redis是一个数据池,A和B都可以连接它,其中A就是你的当前任务,它只负责写入到Redis,而B是另一个任务(比如查尔斯说的命令行的方式启动一个死循环脚本)它只负责查询/删除Redis中的邮件数据。

死循环脚本伪码:

set_timelimit(0);//让这个PHP程序可以无限时的执行
while(true) {
    $row = $redisInstance->shiftGroup('Email');//所有要发送的邮件是一个数组的话,取出第一个
    if (empty($row)) {
        sleep(1);//休息1秒
        continue;
    }
    SendMail($row);
}

这篇关于用php-redis给全部用户发送邮件,数据量很大,思路应该是什么样的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆