• php Redis定时执行或延迟(异步)


    安装Redis就不说了  

    个人偏使用宝塔

    先配置redis

    (百度的:windows配置文件redis配置文件 redis.windows.conf)

    notify-keyspace-events "Ex"

    宝塔的直接在redis里面配置即可(记住要双引号)

    然后搞1个监听任务的(分配任务)和添值(添加任务)

    在运行根目录新建文件redis_task.php(自己随便命名)一会儿要执行

     1 <?php
     2 //redis时间到期销毁执行
     3 function run_task($redis, $pattern, $chan, $key)
     4 {
     5     // 
     6     // echo "Pattern: $pattern
    ";
     7     // echo "Channel: $chan
    ";
     8     // echo "Msg: $key
    ";
     9 
    10     $data = json_decode(base64_decode($key),true);
    11     $domain = 'http://tool.he4966.cn';
    12     if($data){
    13         
    14         switch ($data['type']) {
    15             case '1':
    16                 //写需要执行的接口  自行修改
    17                 echo file_get_contents($domain.'/api/order/query_baochang_pay_order?order='.$data['order']);
    18                 break;
    19             case '2':
    20                 # code...
    21                 break;
    22             default:
    23                 # code...
    24                 break;
    25         }
    26     }
    27     var_dump($data);
    28   
    29 
    30 }
    31 
    32 
    33 $redis = new Redis();
    34 //连接本地的 Redis 服务  可以更改自己的
    35 $redis->connect("127.0.0.1", 6379);
    36 
    37 $redis->setOption(Redis::OPT_READ_TIMEOUT,-1);
    38 echo "任务消息开始监听..".PHP_EOL;
    39 $redis->psubscribe(array('__keyevent@0__:expired'), 'run_task');
    40 
    41 ?>

    添加任务的如下:这个随便写在某个接口下面或者那里也可以自行修改 然后访问就知道了

     1 <?php
     2 
     3 
     4 $redis = new Redis();
     5 //连接本地的 Redis 服务
     6 $redis->connect("127.0.0.1", 6379);
     7 //这个key是最主要的交互数据,里面随便传自己需要的参数
     8 $key = base64_encode(json_encode(['order'=>'Dc2021042314551110210010180531','type'=>'1','time'=>time()]));
     9 $redis->set($key, "qq496631085");
    10 $redis->expire($key, 300);//300秒后执行也就是5分钟后执行 自己修改
    11 
    12 
    13 ?>

     执行命令 php redis_task.php(也可以用宝塔的插件来守护进程也可以

    再访问写的添加数据即可

    1
     
  • 相关阅读:
    排序算法分析
    图论算法小结
    A*算法
    分支界限法的应用
    图的搜索策略
    最大二分匹配
    C++学习笔记(1)
    vscode简单c语言多文件编译
    c语言变量大小
    十大排序算法总结
  • 原文地址:https://www.cnblogs.com/xiaohe520/p/14734852.html
Copyright © 2020-2023  润新知