内容简介:今天做商城项目的时候,需要将用户的待付款订单一个小时后自动取消。那么这个操作,不可能是人为的,只能借助整体思路:首先,在
今天做商城项目的时候,需要将用户的待付款订单一个小时后自动取消。那么这个操作,不可能是人为的,只能借助 linux
的 cron
来进行做定时任务了。
整体思路:
首先,在 Order
模型里写一个 public
方法,将查询到的半个小时之外还没付款的订单,将其状态全部改为 已取消的状态。
其次,自定义命令,执行该方法。
最后呢,就是将其命令注册到调度任务里自动执行即可。
-
编写public cancelUnpaidOrder的方法
// 在Order模型里 public function cancelUnpaidOrder() { self::where('status', 1) ->where('created_at', '<=', date('Y-m-d H:i:s',time() - 30 * 60)) ->update(['status' => 0]);//我这里的状态为0 就是代表取消订单 //清除缓存(一般做了缓存的这里得清除一下) Cache::forget('status_counts_'.Auth::id()); Cache::forget('count_all'.Auth::id()); }
-
自定义命令
首先跑以下生成命令类
php artisan make:command CancelUnpaidOrder --command=asshop:cancel-unpaid-order
执行完,之后就可以打开生成的类文件 app\CancelUnpaidOrder.php
<?php namespace App\Console\Commands; use App\Models\Shop\Order; use Illuminate\Console\Command; class CancelUnpaidOrder extends Command { // 供我们调用命令 protected $signature = 'asshop:cancel-unpaid-order'; // 命令的描述 protected $description = '定时自动取消待付款订单'; // 最终执行的方法 public function handle(Order $order) { // 在命令行打印一行信息 $this->info("开始查找..."); $order->cancelUnpaidOrder(); $this->info("执行成功!"); } }
然后执行下面命令就能执行编写的方法。
php artisan larabbs:cancel-unpaid-order
-
注册到调度任务
更新 app/Console/Kernel.php
<?php . . . class Kernel extends ConsoleKernel { . . . protected function schedule(Schedule $schedule) { // 一小时执行一次『活跃用户』数据生成的命令 $schedule->command('asshop:cancel-unpaid-order')->everyMinute(); } . . . }
-
利用
linux
的cron
进行定时执行
//编辑crontab export EDITOR=vi && crontab -e
添加你的命令到crontab里 ,写自己的 php 路径 和项目的路径~
* * * * * /www/server/php/72/bin/php /www/wwwroot/asshop/artisan schedule:run >> /dev/null 2>&1
千万要注意一定要用绝对路径哟~表示踩坑过来的。
大功告成~
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 29.Django自定义命令
- laravel 创建自定义的artisan make命令
- cmdr 03 - 用流式接口定义命令行参数处理选项
- 自定义 Go 包的 import path 的命令行应用
- ruby-on-rails – 如何从命令行重新启动Rails应用程序时定义环境?
- 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Approximation Algorithms
Vijay V. Vazirani / Springer / 2001-07-02 / USD 54.95
'This book covers the dominant theoretical approaches to the approximate solution of hard combinatorial optimization and enumeration problems. It contains elegant combinatorial theory, useful and inte......一起来看看 《Approximation Algorithms》 这本书的介绍吧!