zoukankan      html  css  js  c++  java
  • 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
     
  • 相关阅读:
    Aizu 0033
    Aizu 0118
    【思维】贪心+细节——cf1361B
    【思维】构造+凸包+向量叉积——LEETCODE 游乐园的迷宫
    【思维】三元环计数+鸽笼定理/贪心——LEETCODE 游乐园的游览计划 好题
    dp+线性筛——LEETCODE切分数组
    【经典】带障碍的铺砖块——LEETCODE 覆盖
    【思维】树形dp+构造——leetcode二叉树任务调度
    【思维】状压dp—— 2020 联想杯 M
    【思维】建图+排列组合+预处理+最短路—— 2020 联想杯 E
  • 原文地址:https://www.cnblogs.com/xiaohe520/p/14734852.html
Copyright © 2011-2022 走看看