目前做的有点懵。
在php代码里把所有需要请求接口的数组都放进redis 存储里面,
然后用循环把数组brpop出来,但是这个过程不都是靠php代码来执行的吗?
php超时之后整个进程还不是得断掉?
目前做的有点懵。
在php代码里把所有需要请求接口的数组都放进redis 存储里面,
然后用循环把数组brpop出来,但是这个过程不都是靠php代码来执行的吗?
立即学习“PHP免费学习笔记(深入)”;
php超时之后整个进程还不是得断掉?
启动一个php脚本,命令行运行
楼上正解。
这么打比方吧。 Redis是一个数据池,A和B都可以连接它,其中A就是你的当前任务,它只负责写入到Redis,而B是另一个任务(比如查尔斯说的命令行的方式启动一个死循环脚本)它只负责查询/删除Redis中的邮件数据。
死循环脚本伪码:
<code>set_timelimit(0);//让这个PHP程序可以无限时的执行
while(true) {
$row = $redisInstance->shiftGroup('Email');//所有要发送的邮件是一个数组的话,取出第一个
if (empty($row)) {
sleep(1);//休息1秒
continue;
}
SendMail($row);
}</code>
你可以利用Redis的Pub/Sub机制,利用NodeJS建立一个简单的消息队列。
<code>redis.subscribe('email','sms','push',function (err,count) {
});
redis.on('message',function (chan,msg) {
//处理要发送的消息
});</code>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号