时间:2021-07-01 10:21:17 帮助过:29人阅读
redis
的list
队列,使用rpop
获取数据时,有时会返回类似:1
的值;在github
的phpredis
的issues
列表中发现 传送门,项目使用的版本为2.2.7
版本,对于类似的问题,有解决方案吗?
如题,项目使用了redis
的list
队列,使用rpop
获取数据时,有时会返回类似:1
的值;在github
的phpredis
的issues
列表中发现 传送门,项目使用的版本为2.2.7
版本,对于类似的问题,有解决方案吗?
上代码
while (true)
{
$list = $redis->blpop(DXKey::getKeyOfRunnerEmailTaskListPending(), 6);
if (is_array($list) && count($list) == 2)
{
DXUtil::consoleLog(DXUtil::jsonEncode($list));
$payload = $list[1];
DXUtil::consoleLog('pop: ' . $payload);
$task = @json_decode($payload, true);
MailTaskRunner::runEmailTask($task);
}
}
执行结果
2016-11-23 19:23:07 start
2016-11-23 19:23:08 ["runner.email.task.list.pending","{\"time\":1479900188,\"type\":1,\"data\":{\"to_address\":\"wqcsimple@foxmail.com\",\"task_id\":1}}"]
2016-11-23 19:23:08 pop: {"time":1479900188,"type":1,"data":{"to_address":"wqcsimple@foxmail.com","task_id":1}}
2016-11-23 19:23:08 send success