【随手记】基于TP3.2.3+Nginx服务器的定时任务配置

3 篇文章 0 订阅
1 篇文章 0 订阅

Nginx服务器定时任务

该功能是由于某支付客户方那边的发奖接口有每分钟2000次的调用次数限制,在极端的高并发情况下,有可能会出现发奖接口调用过于频繁而导致奖品没有办法发出的情况。所以使用Redis进行调用次数的限制的同时,配合定时任务进行未发奖的补发处理。

Reids控制部分

		//连接redis
        $redis = new \Redis();
        $redis->connect('服务器地址', 端口号);
        $redis->auth('密码配置'); //密码验证
        //获取Redis信息
        $ret = $redis->get('redis字段');

        if($ret){
        	$ret = $redis->incr('redis字段');
        }else{
        	//设置当前生命周期为60秒
        	$ret = $redis->set('redis字段', 1);
        	$redis->expire('redis字段',60);
        }

PHP部分关键代码(由于外协采用的是原生mysqli链接处理,其他项目可以使用TP3.2.3的M方法):

PHP部分代码

public function index(){
        // 链接数据库 选择数据库  开始执行定时任务发送
        $connect = mysqli_connect('数据库地址','用户名','密码','数据库名') or die('Unale to connect');
        //插入一条数据
        $sql = "select * from getprize as t where t.is_send = 2 and t.phone > 0 and t.is_right = 1 limit 100";
        // 执行sql语句返回结果集
        $result  =  mysqli_query($connect,$sql);
        $rowList =  mysqli_fetch_all($result, MYSQLI_ASSOC);
        if($rowList){
            //处理发送[云闪付]对接接口
            foreach($rowList as $key => $val){
                $res = $this->couponsend($val['phone'],$ctype);
                if($res['code'] == '0'){
                    $usql = "update getprize as t set t.is_send = 1 where t.phone =" . $val['phone'];
                    mysqli_query($connect,$usql);
                }
            }
        }
        //释放结果集
        mysqli_free_result($result);
        //关闭链接
        mysqli_close($con);
    }

##Nginx服务器配置
使用Xshell或其他服务器链接工具链接至服务器,使用 crontab -e 命令打开服务器定时任务管理.
在这里插入图片描述

总左至右:

minute:代表一小时内的第几分,范围 0-59。
hour:代表一天中的第几小时,范围 0-23。
mday:代表一个月中的第几天,范围 1-31。
month:代表一年中第几个月,范围 1-12。
wday:代表星期几,范围 0-7 (0及7都是星期天)。
bin/sh 是指运行 脚本的命令。
command:所要执行脚本路径。

在这里插入图片描述
例如 */1 * * * * wget http://www.baidu.com/Bg/Ysfcli/index

含义为: ,每一分钟通过wget方式调用 域名部分的接口功能.
配置完成后输入:wq退出 ,之后重启服务器定时任务服务即可.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值