日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

laravel编写Console定时脚本

發布時間:2023/12/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel编写Console定时脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:
app\Console\Commands目錄下創建腳本文件TestConsole.php

<?php namespace App\Console\Commands;use Illuminate\Console\Command; use App\Base\CommonPoolMethod; //連接數據庫可引入數據庫相關類class TestConsole extends Command {use CommonPoolMethod;/*** The name and signature of the console command.* update:artisan下命令組,可使用【php artisan -v】或【php artisan list】查看* test_function :解釋命令作用(隨意)* 完整命令【php artisan update:test_function】* @var string*/protected $signature = 'update:test_function';/*** The console command description.** @var string*/protected $description = "更新測試方法";/*** Create a new command instance.** @return void*/public function __construct(){parent::__construct();}public function handle(){//編寫腳本方法}}

二:Console\Kernel.php文件中引入命令

//新增【必須】 use App\Console\Commands\TestConsole;protected $commands = [//新增【必須】TestConsole::class,];//定時任務【可選,定時任務時添加】protected function schedule(Schedule $schedule){//每天1點執行一次$schedule->command('update:test_function')->dailyAt('1:00');}

三:測試任務是否成功【php artisan list】
列出全部任務命令,若存在【update:test_function】命令,證明任務創建成功;若不存在,證明創建失敗

四:laravel根目錄下執行artisan命令【php artisan update:test_function】

注:執行命令報錯【SQLSTATE[HY000] [2002] No such file or directory 】
原因:未找不到mysql.sock文件
解決:
1:打開MySQL管理工具,執行sql語句 【show variables like ‘%sock%’】,得到一個目錄【/Applications/MAMP/tmp/mysql/mysql.sock】

2:找到 ./config/database.php 中的 unix_socket,修改【‘unix_socket’ => ‘/Applications/MAMP/tmp/mysql/mysql.sock’】

或者

.env中對應的DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

五:定時任務相關:

->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(); 避免任務重復執行

六:服務器啟動定時任務

#列出全部任務 crontab -l #編輯任務 crontab -e #新增以下任務#每分鐘執行一次 #/www/server/php/73/bin/php 【php 的運行配置文件所在路徑】 #/www/project【項目根目錄】 * * * * * /www/server/php/73/bin/php /www/project/artisan schedule:run >> /dev/null 2>&1

總結

以上是生活随笔為你收集整理的laravel编写Console定时脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。