Laravel框架定时任务2种实现方式示例
本文实例讲述了Laravel框架定时任务2种实现方式。分享给大家供大家参考,具体如下:
第一种
1、生成一个commands文件
> php artisan make:command test
2、打开文件进行修改
laravel\App\Console\Commands\test.php
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class test extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'test:insert'; // php artisan list 中将会生成 "php artisan test:insert " 指令
/**
* The console command description.
*
* @var string
*/
protected $description = 'insert Test table some test data'; // 对上面指令的描述
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
// 编写你要的定时任务执行的代码!
# eg
Log::info('test');
}
}
> php artisan list 查看
3、然后修改: laravel\app\Console\Kernel.php 文件
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
protected $commands = [
// 参考手册 新加
\App\Console\Commands\test::class,
];
// 定义应用的命令调度
protected function schedule(Schedule $schedule)
{
// 新加 每分钟执行一次
$schedule->command('test:insert')->everyMinute();
}
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
4、启用计划任务:在服务器中加入到计划任务 crontab -e
注意这里的 path 是你的laravel项目根目录的 绝对路径!, 然后加上后面的 artisan 到结尾的字符串
* * * * * php /path/artisan schedule:run >> /dev/null 2>&1
* * * * * php /code/src/laravel/artisan schedule:run >> /dev/null 2>&1
5、打开日志文件查看
laravel\storage\logs\laravel.log
第二种
使用 shell脚本执行
因为 php artisan list 可以查看到 执行指令 test:insert
所以可以考虑用 .sh 脚本执行,还是类似上面 crontab -e编写
1、先编写 .sh 脚本 laravel/test.sh 放在项目某个位置,文件内写入
php artisan test:insert
上面指令在命令行手动每执行一次就可以触发一次编写的程序,相当于给 laravel.log 写入一次 test
2、使用 crontab -e 编写 执行 第一步写的 test.sh 脚本
* * * * * laravel/test.sh
以上两种均可看到 laravel.log 日志
您可能感兴趣的文章:
- Laravel实现定时任务的示例代码
- Laravel框架实现定时发布任务的方法
- 源码分析 Laravel 重复执行同一个队列任务的原因
- Laravel中任务调度console使用方法小结
- Laravel框架数据库CURD操作、连贯操作总结
- Laravel框架表单验证详解
- Laravel框架中扩展函数、扩展自定义类的方法
- 跟我学Laravel之快速入门
- Laravel框架路由配置总结、设置技巧大全
- Laravel中使用FormRequest进行表单验证方法及问题汇总
文章同步发布: https://www.geek-share.com/detail/2755357086.html
Laravel框架定时任务2种实现方式示例的更多相关文章
- EF框架的三种工作方式
EF框架step by step(1)—Database-First EF框架step by step(2)—Model-First EF框架step by step(3)—Code-First 通过 ...
- IndexFlatL2、IndexIVFFlat、IndexIVFPQ三种索引方式示例
上文针对Faiss安装和一些原理做了简单说明,本文针对标题所列三种索引方式进行编码验证. 首先生成数据集,这里采用100万条数据,每条50维,生成数据做本地化保存,代码如下: import numpy ...
- Vue框架的两种使用方式
1.单页面应用:使用Vue CLI工具生成脚手架,这是最常见的使用方式,简单用模板生成一个HelloWorld Demo,可以学习Vue的SPA项目结构 2.传统多页面应用:通过script引入Vue ...
- Windows下Yii2框架的两种安装方式及升级最新版
第一种:归档文件形式安装(适合于没有安装composer的机器) 进入下载页https://www.yiiframework.com/download,选择下载第一个 下载完成之后是一个压缩包,解压文 ...
- 使用 Composer 安装 Laravel 框架
前言: 1. Composer 安装 Laravel 有两种方式: 第一种是通过 Composer 的 create-project 命令安装 Laravel 框架, 第二种是先通过 Composer ...
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 异常汇总:http://www ...
- 使用java配置定时任务的几种配置方式及示例
Spring定时器,主要有两种实现方式,包括Java Timer定时和Quartz定时器! 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 package ...
- Java 定时任务的几种实现方式
JAVA实现定时任务的几种方式 @(JAVA)[spring|quartz|定时器] 近期项目开发中需要动态的添加定时任务,比如在某个活动结束时,自动生成获奖名单,导出excel等,此类任务由于活动 ...
- spring定时任务的几种实现方式
Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将 ...
随机推荐
- 使用事务和SqlBulkCopy批量插入数据
SqlBulkCopy是.NET Framework 2.0新增的类,位于命名空间System.Data.SqlClient下,主要提供把其他数据源的数据有效批量的加载到SQL Server表中的功能 ...
- CentOS使用PXE网络启动自动安装操作系统
PXE工作原理简介 PXE (Preboot Excution Environment) 预启动执行环境 工作环境介绍: 要实现PXE自动网络安装CentOS至少需要两台主机 1)PXE服务器PXE ...
- Mac appium iOS 安装命令
1. brew install node 2. npm install -g appium #或者用安装包安装 3. brew install libimobiledevice --HEAD # in ...
- Git 解决方案 commit your changes or stash them before you can merge
error: Your local changes to the following files would be overwritten by merge: *********** Please, ...
- MongoDB authentication failed
0.随笔摘要: MongoDB 安装配置 MongoDB 权限控制 MongoDB 注意事项 authentication failed 1.MongoDB 下载安装配置 MongoDB官网 ...
- spring mvc 多数据源切换,不支持事务控制[一]
一个项目中需要使用两个数据库,Oracle 和Mysql ,于是参考各个blog,实现此功能.写好后才发现,原来的事务失效了,我去... spring-mybatis.xml 配置 <bean ...
- BZOJ1042:[HAOI2008]硬币购物(DP,容斥)
Description 硬币购物一共有4种硬币.面值分别为c1,c2,c3,c4.某人去商店买东西,去了tot次.每次带di枚ci硬币,买si的价值的东西.请问每次有多少种付款方法. Input 第一 ...
- POJ3304 Segments
嘟嘟嘟 题面就不说了,网上都有. 刚开始理解成了只要有不孤立的线段就算合法,结果就不会了--然而题中要求是所有线段至少有一个交点. 其实想一想就知道,问题转化为了是否存在一条直线和所有线段都有交点. ...
- Maven构建项目报No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 问题的解决方案
在编译SSM项目时,碰到如下问题,希望能给遇到相同问题的小伙伴们帮助 O(∩_∩)O~ Eclipse导入Maven项目后,选中父项目,执行Run AS——>Maven install后,出现如 ...
- 一分钟掌握Spring中bean的生命周期!
Spring 中bean 的生命周期短暂吗? 在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean 的别名只能维持 ...