好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Laravel框架實現定時發(fā)布任務的方法

Laravel框架實現定時發(fā)布任務的方法

熱門標簽:萍鄉(xiāng)商鋪地圖標注 電信外呼系統(tǒng)多少錢一個月 太原400電話申請流程 宿州正規(guī)外呼系統(tǒng)軟件 神龍斗士電話機器人 企業(yè)400電話辦理多少費用 代理打電話機器人 合肥企業(yè)外呼系統(tǒng)線路 桂陽公司如何做地圖標注

本文實例講述了Laravel框架實現定時發(fā)布任務的方法。分享給大家供大家參考,具體如下:

背景:需要每隔一小時新建一個任務

http://laravelacademy.org/post/8484.html

Laravel官方自帶這個功能,需要利用到Linux系統(tǒng)的cronTab功能。

1、利用Linux的cronTab功能

(1)進入Linux服務器環(huán)境,命令行輸入

crontab -e

這樣就直接進入了服務器下的/var/spool/cron/root文件。如果/var/spool/cron/下還沒有root文件,輸入上面那個命令就會自動新建root文件了。

(2)先進入文件編輯模式,在root文件中輸入

復制代碼 代碼如下:
* * * * * /usr/local/php/bin/php  /opt/xxx/xxx/artisan  schedule:run 1>> /dev/null 2>1

前面第一個目錄是php在服務器上的位置,如果不清楚,可以命令行輸入which php自行查看然后修改。

第二個目錄是你的laravel項目的存放位置,就是artisan文件所在的根目錄

2、然后在laravel項目目錄下新建任務,命令行輸入

php artisan make:command SendTask

然后發(fā)現在app/Console/Commands路徑下多了一個SendTask.php的文件

自定義這個文件的$signature(等會兒要跟app/Console/Kernel.php文件中的command里面的名稱對應,比如我寫的是task:send)、$description(對這個任務的描述)、handle()方法中是這個定時任務的主要邏輯代碼。

3、然后修改app/Console/Kernel.php文件

在$commands里要增加剛剛的任務的存放路徑;要同時執(zhí)行多個任務時,將要同時執(zhí)行的任務的class加入到$commands

protected $commands = [
\App\Console\Commands\SendTasks::class,
\App\Console\Commands\SendTaskEveryDay::class,
\App\Console\Commands\SendTaskEveryWeek::class,

schedule里面是定時執(zhí)行的核心代碼:可以自己直接在里面寫要執(zhí)行的任務的內容,也可以調用新建的command里的任務執(zhí)行內容。后面就是說明執(zhí)行任務的頻次。

protected function schedule(Schedule $schedule)
{
//  $schedule->call(function () {
//   Task::create(['title' => '發(fā)送定時任務']);
//  })->everyMinute();
//調用artisan
// $schedule->command('tasks:send')->hourly();
$schedule->command('tasks:send')->cron('0 */2 * * *');
$schedule->command('tasks:everyday')->dailyAt('09:00');

其實到這里已經是可以執(zhí)行發(fā)布定時任務的期待了,但是我希望可以傳參到這個定時任務里面去,因為每次的任務內容不一樣,需要達到可以自定義的效果。在這里糾結了很久,還嘗試了修改handle()方法,修改成為handle($data),然后在要發(fā)布定時任務的時候調用這個handle()方法,然后將參數通過$data傳過來,但是發(fā)現一旦handle()里面帶參數之后定時任務就不能執(zhí)行了,具體原因不知道,但是這個思路明顯就是錯了。

最后走了很多彎路,想到一個辦法,不能從外部傳參進去,就在方法里面把參數查出來。我想要的效果就是:新建一個任務,然后這個新建的任務需要每隔1小時自動新建一次。

想到的解決辦法就是在handle()方法里面用sql語句或者查詢構造器先把新建的那個定時任務查出來,然后將這個任務再新增一次。暫時能想到的就是這個辦法,起碼可以達到我想要的效果了。

$cron=Task::where('type', 'xxx')
 ->first();
$cronTab=$cron->jsonSerialize();
$task= Task::create($cronTab);

更多關于Laravel相關內容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優(yōu)秀開發(fā)框架總結》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • Laravel實現定時任務的示例代碼
  • 源碼分析 Laravel 重復執(zhí)行同一個隊列任務的原因
  • Laravel中任務調度console使用方法小結
  • Laravel框架數據庫CURD操作、連貫操作總結
  • Laravel框架表單驗證詳解
  • Laravel框架中擴展函數、擴展自定義類的方法
  • 跟我學Laravel之快速入門
  • Laravel框架路由配置總結、設置技巧大全
  • Laravel中使用FormRequest進行表單驗證方法及問題匯總
  • Laravel框架定時任務2種實現方式示例

標簽:太原 綏化 衡陽 鄂州 白銀 辛集 廊坊 崇左

巨人網絡通訊聲明:本文標題《Laravel框架實現定時發(fā)布任務的方法》,本文關鍵詞  Laravel,框架,實現,定時,發(fā)布,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel框架實現定時發(fā)布任務的方法》相關的同類信息!
  • 本頁收集關于Laravel框架實現定時發(fā)布任務的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 寂寞的欢愉正版| 国产精品???国产18| 欧美成人精品免费播放| 朋友的妈妈在线| 天天做天天摸天天爽天天爱| 久久精品久久精品| 亚洲色少妇a8198v久久69| 强要了她h| 美女胸被狂揉扒开吃奶的网站| 熟女作爱一区二区视频| 双性受抽搐潮喷调教老师与学生| 和老头做了一晚上好爽| 巜一边亲一边摸下奶韩剧| 国精产品秘?福利姬入口| 贵妃挨脔日常NP| 婷婷综合橙色AV精品综合视频 | 50一60岁老妇女毛片| aaaaaaa不要好爽| 狠色狠色狠狠色综合久久| 情趣试玩师play小黄文| 天天做天天爱夜夜爽毛片毛片| 古代高H禁伦肉欲文| 扒开双腿疯狂进进出出的意思| 欧美最猛性xxxx| 乱码丰满人妻一二三区麻豆 | 用力挺进她的花苞?啊小说片段| 国产午夜AAA片无码无片久久| 欧亚尺码专线免费2024| 任课老师上课班主任进入| 国模精品一区二区三区萍果色戒| 337p欧美大胆艺术| 在线观看网站资源免费播放| 521av香蕉| 久久精品国产精品青草色艺| 亚洲性图第一页| 99AV国产精品欲????麻豆| 大神出处gif常见 动态图| 亚洲白色白色白色视线2| 成人性欧美丨区二区三区| 秋霞网韩国成人理论片免费看| 成人写真福利网|