一、windows下执行优惠券更新程序(每天凌晨十二点)
1.创建command命令:php think make:command salesroomCoupon
2.在salesroomCoupon.php编写代码
<?php
namespace app\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\facade\Db;
/** 定时更新优惠券有效时限 */
class SalesroomCoupon extends Command
{
/**
* 设置指令
* @return void
*/
protected function configure()
{
// 指令配置
$this->setName('salesroomCoupon')
->setDescription('优惠券自动生效或失效定时任务');
}
/**
* 刷新优惠券有效期
* @param Input $input
* @param Output $output
* @return void
*/
protected function execute(Input $input, Output $output){
Db::startTrans();
try{
// 自己的代码逻辑
Db::commit();
$output->writeln("执行成功");
return true;
}catch (\Exception $e){
Db::rollback();
$output->writeln("执行失败");
return false;
}
}
}
3.注册命令:在根目录下的config/console.php添加如下命令
4.编写执行脚本.bat文件:根目录创建robot/pms_salesroom_coupon.bat
::进入D目录
D:
::进入项目目录
cd D:\phpstudy_pro\WWW\xxxxx\robot \\ 项目名称
::执行服务器列表异常检测php命令
php think salesroomCoupon
5.配置windows定时任务:win+r 输入taskschd.msc
①创建任务
②配置定时器
二、linux下 运用crontab制定定时器(crontab自行下载安装)
1.创建Shell脚本(切换到项目目录下) salseroomCoupon.sh
2.编写内容: vim salesroomCoupon.sh
#!/bin/bash
/usr/local/php/bin/php /usr/local/nginx/www/hongshanshu php think salesroomCoupon
3.授权脚本文件: chmod +x salseroomCoupon.sh
4.了解crontab
//操作命令
crontab -l //查看当前用户的crontab文件内容
crontab -e //编辑当前用户的crontab文件内容
crontab -r //删除当前用户的crontab文件内容
//时间格式
minute hour day month week command
分 小时 天 月 星期 命令
举例
*/5 * * * * command 每5分钟执行一次
0 * * * * command 每小时执行一次
0 0 * * * command 每天执行一次
0 0 * * 0 command 每周执行一次
0 0 1 0 0 command 每月执行一次
3,15 8-11 * * 1 command 每个星期一的上午8-11点的第3分钟和第15分钟执行
15 8-11 */2 * * command 每隔两天的上午8-11点的第15分钟执行
45 4 1,10,22 * * command 每月1、10、22日的4:45分执行
- 打开自定义任务列表:crcontab -e
# 每天凌晨十二点执行该脚本
0 0 * * * /bin/bash /usr/local/nginx/www/hongshanshu/robot/salseroomCoupon.sh