如題,項目使用了
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 start2016-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