PHP Laravel框架異步執(zhí)行的實(shí)現(xiàn)詳解
Laravel 異步執(zhí)行任務(wù)
不影響當(dāng)前程序繼續(xù)執(zhí)行
描述:用戶操作時(shí) 要執(zhí)行計(jì)算量大且不影響主操作的任務(wù)時(shí),可采用異步方式執(zhí)行。
隊(duì)列的目的是將耗時(shí)的任務(wù)延時(shí)處理,比如發(fā)送郵件,從而大幅度縮短 Web 請求和響應(yīng)的時(shí)間
大致操作
- 生成要執(zhí)行的文件 php artisan make:job UploadTask
- .env 中的 QUEUE_CONNECTION=sync 變?yōu)?QUEUE_CONNECTION=redis
- UploadTask文件里寫入要執(zhí)行的任務(wù)
- 啟動(dòng)任務(wù)隊(duì)列 php artisan queue:work
- 在觸發(fā)位置使用 dispatch(new UploadTask()); 開啟隊(duì)列
代碼粘貼
app/Jobs/UploadTask.php
<?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Support\Facades\Log; class UploadTask implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. * * @return void */ public function __construct() { //因?yàn)橐獙?dǎo)入大文件 需要很久時(shí)間 } /** * Execute the job. * * @return void */ public function handle() { Log::info('UploadTask'); $command = 'cd ' . base_path() . ' && php artisan ExcelFile '; $ret = shell_exec($command); Log::info('UploadTask-導(dǎo)入結(jié)束'.print_r($ret,true)); } }
啟動(dòng)代碼摘取
$form->saved(function (Form $form) { dispatch(new UploadTask()); return $form->redirect('yyImport','保存成功'); });
其他操作
因?yàn)槭莻€(gè)人的電腦 隨時(shí)會關(guān)機(jī) queue就會被停掉 所以使用了windows的開機(jī)自啟執(zhí)行vbs
runReadExecelVbs.vbs
set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c I:\yinyue\runReadExecel.bat",vbhide
runReadExecel.bat
cd I:\yinyue
php artisan queue:work
到此這篇關(guān)于PHP Laravel框架異步執(zhí)行的實(shí)現(xiàn)詳解的文章就介紹到這了,更多相關(guān)PHP Laravel異步執(zhí)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
談?wù)勑率秩绾螌W(xué)習(xí)PHP網(wǎng)絡(luò)編程
最近用到了php,雖然php的好的都不懂,也只是做一些簡單的修改和書寫很少的代碼,但感覺php的功能真的很強(qiáng)2008-05-05php+js實(shí)現(xiàn)的拖動(dòng)滑塊驗(yàn)證碼驗(yàn)證表單操作示例【附源碼下載】
這篇文章主要介紹了php+js實(shí)現(xiàn)的拖動(dòng)滑塊驗(yàn)證碼驗(yàn)證表單操作,結(jié)合實(shí)例形式分析了php+js拖動(dòng)滑塊驗(yàn)證碼驗(yàn)證表單操作基本功能實(shí)現(xiàn)與使用相關(guān)操作技巧,需要的朋友可以參考下2020-05-05完美解決php 導(dǎo)出excle的.csv格式的數(shù)據(jù)時(shí)亂碼問題
下面小編就為大家?guī)硪黄昝澜鉀Qphp 導(dǎo)出excle的.csv格式的數(shù)據(jù)時(shí)亂碼問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02PHP開發(fā)之歸檔格式phar文件概念與用法詳解【創(chuàng)建,使用,解包還原提取】
這篇文章主要介紹了PHP開發(fā)之歸檔格式phar文件概念與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了歸檔格式phar文件創(chuàng)建,使用,解包還原提取等概念及操作實(shí)現(xiàn)方法,需要的朋友可以參考下2017-11-11用mysql觸發(fā)器自動(dòng)更新memcache的實(shí)現(xiàn)代碼
不錯(cuò)的一篇文章,用于項(xiàng)目中可以帶來更多的便利,按照方法已經(jīng)調(diào)試成功,可以大大提高項(xiàng)目的速度。2009-10-10