IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Laravel执行定时任务 -> 正文阅读

[PHP知识库]Laravel执行定时任务

1.创建一个自定义的Command

# php artisan make:command Hello 

2.编辑Hello.php文件(app/Console/Commands/Hello.php)

?
?
<?php

namespace App\Console\Commands;

use App\Http\Controllers\CeShiController;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;

class Hello extends Command
{
    //名称
    protected $signature = 'command:ceshi';

    //描述
    protected $description = 'Command description';

    public function __construct()
    {
        parent::__construct();
    }

    //执行的业务
    public function handle()
    {
        //调用方法
        (new CeShiController())->ceshi();
        //或者直接书写逻辑
        //Log::info(time().'测试定时任务');
    }
}

3.修改kernel.php

<?php

namespace App\Console;

use App\Console\Commands\Hello;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    //应用中自定义的 Artisan 命令,可多个
    protected $commands = [
        Hello::class
    ];

    //定义计划任务和执行事件
    protected function schedule(Schedule $schedule)
    {
        //每分钟执行一次名称为command:ceshi的任务
        $schedule->command('command:ceshi')->everyMinute()->withoutOverlapping;
        // 工作日(周一至周五) 8 点 至 17 点每小时执行一次
        //$schedule->command('foo')
        //    ->weekdays()
        //    ->hourly()
        //    ->timezone('America/Chicago')
        //    ->between('8:00', '17:00');
    }

    protected function commands()
    {
        $this->load(__DIR__ . '/Commands');

        require base_path('routes/console.php');
    }
}

调用频率和限制

方法描述
->cron('* * * * *');自定义 Cron 计划执行任务
->everyMinute();每分钟执行一次任务
->everyFiveMinutes();每五分钟执行一次任务
->everyTenMinutes();每十分钟执行一次任务
->everyFifteenMinutes();每十五分钟执行一次任务
->everyThirtyMinutes();每三十分钟执行一次任务
->hourly();每小时执行一次任务?????????
->hourlyAt(17);每小时第 17 分钟执行一次任务
->daily();每天 0 点执行一次任务
->dailyAt('13:00');每天 13 点执行一次任务
->twiceDaily(1, 13);每天 1 点及 13 点各执行一次任务
->weekly();每周日 0 点执行一次任务
->weeklyOn(1, '8:00');每周一的 8 点执行一次任务
->monthly();每月第一天 0 点执行一次任务
->monthlyOn(4, '15:00');每月 4 号的 15 点 执行一次任务
->quarterly();每季度第一天 0 点执行一次任务
->yearly();每年第一天 0 点执行一次任务
->timezone('America/New_York');设置时区
->weekdays();限制任务在工作日执行
->weekends();限制任务在周末执行?
->sundays();限制任务在周日执行
->mondays();限制任务在周一执行
->tuesdays();限制任务在周二执行
->wednesdays();限制任务在周三执行
->thursdays();限制任务在周四执行
->fridays();限制任务在周五执行
->saturdays();限制任务在周六执行
->between($start, $end);限制任务在?$start?和?$end?区间执行->hourly()->between('7:00', '22:00');
->when(Closure);限制任务在闭包返回为真时执行
->environments($env);限制任务在特定环境执行
->withoutOverlapping();避免任务重复执行

4.执行定时任务

? ?手动执行:php artisan command:ceshi (名称)

? ? 服务器自动执行:

1.编辑定时任务:

crontab -e

2.php多版本可以将php改为版本的绝对路径,项目路径

?* * * * * php /www/wwwroot/ceshi/artisan schedule:run >> /www/wwwroot/ceshi/test.txt 2>&1

3.保存重启cron服务

CentOS7方法:

重启服务
systemctl restart crond.service?

CentOS6方法:

重启服务

service crond restart

5.结果

local.INFO: 1645090022定时任务  
local.INFO: 1645090081定时任务  
local.INFO: 1645090142定时任务  
local.INFO: 1645090201定时任务  
local.INFO: 1645090262定时任务  

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-02-22 20:20:15  更:2022-02-22 20:22:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:47:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码