<?php
// 修改redis.conf notify-keyspace-events "Ex"
# 当事件发生时, Redis 可以通知 Pub/Sub 客户端。
# 可以在下表中选择 Redis 要通知的事件类型。事件类型由单个字符来标识:
# K Keyspace 事件,以 _keyspace@<db>_ 的前缀方式发布
# E Keyevent 事件,以 _keysevent@<db>_ 的前缀方式发布
# g 通用事件(不指定类型),像 DEL, EXPIRE, RENAME, …
# $ String 命令
# s Set 命令
# h Hash 命令
# z 有序集合命令
# x 过期事件(每次 key 过期时生成)
# e 清除事件(当 key 在内存被清除时生成)
# A g$lshzxe 的别称,因此 ”AKE” 意味着所有的事件
# notify-keyspace-events 带一个由 0 到多个字符组成的字符串参数。空字符串意思是通知被禁用。
# 例子:启用 list 和通用事件:
# notify-keyspace-events Elg
# 默认所用的通知被禁用,因为用户通常不需要改特性,并且该特性会有性能损耗。
# 注意如果你不指定至少 K 或 E 之一,不会发送任何事件。
# notify-keyspace-events AKE
//redis时间到期销毁执行
function run_task($redis, $pattern, $chan, $key)
{
//
// echo "Pattern: $pattern\n";
// echo "Channel: $chan\n";
// echo "Msg: $key\n";
$data = json_decode(base64_decode($key), true);
$domain = 'http://tool.he4966.cn';
if ($data) {
switch ($data['type']) {
case '1':
//写需要执行的接口 自行修改
//todo
echo 1;
break;
case '2':
# code...
break;
default:
# code...
break;
}
}
var_dump($data);
}
$redis = new \Redis();
//连接本地的 Redis 服务 可以更改自己的
$redis->connect("127.0.0.1", 6379);
$redis->setOption(\Redis::OPT_READ_TIMEOUT, -1);
echo "任务消息开始监听.." . PHP_EOL;
$redis->psubscribe(array('__keyevent@0__:expired'), 'run_task');
action
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0授权协议,
转载请注明来源,谢谢!如本站内容对你有所帮助的话,欢迎订阅关注
邢栋博客,唠嗑(分享)每日的折腾经历。
已有 0 条评论