用 PHP 监听 Redis 键过期事件遇到点问题 请大家帮忙看一下

浏览:80 发布日期:2019/05/12 分类:求助交流 关键字: Redis ThinkPHP6
描述:用 PHP 监听 Redis 键过期 然后通过键取出值插入到数据库 如果时间稍微长点的话就会报 Error while sending STMT_PREPARE packet. PID=16472

这方面的基础比较差 还的麻烦大家帮忙看一下

执行 php index.php overdue 开始监听 用的是 ThinkPHP6.0 监听开始的一段时间数据插入正常 时间久点就会报错public function overdue()
{
        $redis = new \Redis();
        $redis->connect('127.0.0.1', 6379);
        $redis->setOption(\Redis::OPT_READ_TIMEOUT, -1);
        $redis->psubscribe(array('__keyevent@0__:expired'), function ($redis, $pattern, $chan, $key) {
                if (is_numeric($key)) {
                    $d = Cache::get('us_' . $key);
                    $data = [
                        'user_id' => $key,
                        'status' => 2,
                        'name' => $d['name'],
                        'record_id' => $d['id'],
                        'mobile' => $d['mobile'],
                        'department' => $d['department'],
                        'arrange_id' => $d['arrange_id'],
                        'is_first' => $d['is_first']
                    ];
                    Db::name('submit_record')->insert($data);
                }
        });
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>