目前用laravel框架開發的一個項目,項目中需要一些數據,需要的這些數據是對數據庫中幾十張表進行關聯查詢、運算、處理後得到的,由於數據量比較大,公司要求寫一個定時任務,在每天晚上0點時開始執行,直到把所有資料都執行處理一遍後結束這個任務。我現在在laravel控制器中寫了一個方法,用來處理資料庫中的數據,現在只要定時循環執行這個方法就可以實現功能。
但是現在我不知道如何去定時執行?是用php cli模式執行?還是用artisan console執行?求指點思路?
学习是最好的投资!
crontab 使用Linux的wget或curl指令透過Http請求存取你的控制器。
1.大數據量最好就別拉出來應用層玩啦,寫個mysql的預存程序或函數。 (呼叫可以透過mysql事件呼叫),這樣處理會非常節省資源。
2.還是寫到儲存過程,可以配合 linux中的 crond定時任務進行定時處理。
Laravel 的 Scheduling 我覺得很符合你的需求,中文文件在這裡。 http://d.laravel-china.org/do...
laravel有調度任務功能的.建議多看文件~
按你的情況最簡單的就是laravel 的任務調度
禁忌
這玩意看你公司需求了,有維運的話,你自己寫個方法來操作數據,讓運維寫個腳本來定時請求這個方法就行了。沒有維運並且你老闆也不讓你動伺服器的話,可以選擇寫一個PHP腳本來操作數據,用sleep和循環來搞定,把這個文件放到連接中,用header函數來訪問請求這個鏈接
我來推薦幾個定時任務的函式庫。用composer載入Dispatcher 基於Laravel的定時任務管理swoole-crontab 基於swoole的定時器程序,支援秒級處理jobby 一個PHP 的定時任務管理器cronlingo Express crontabs as human friends human php去看看不懂英文我這裡有一個備份也可以查看點擊此處跳轉
crontab 使用Linux的wget或curl指令透過Http請求存取你的控制器。
1.大數據量最好就別拉出來應用層玩啦,寫個mysql的預存程序或函數。 (呼叫可以透過mysql事件呼叫),這樣處理會非常節省資源。
2.還是寫到儲存過程,可以配合 linux中的 crond定時任務進行定時處理。
Laravel 的 Scheduling 我覺得很符合你的需求,中文文件在這裡。
http://d.laravel-china.org/do...
laravel有調度任務功能的.建議多看文件~
按你的情況最簡單的就是laravel 的任務調度
禁忌
這玩意看你公司需求了,有維運的話,你自己寫個方法來操作數據,讓運維寫個腳本來定時請求這個方法就行了。沒有維運並且你老闆也不讓你動伺服器的話,可以選擇寫一個PHP腳本來操作數據,用sleep和循環來搞定,把這個文件放到連接中,用header函數來訪問請求這個鏈接
我來推薦幾個定時任務的函式庫。用composer載入
Dispatcher 基於Laravel的定時任務管理
swoole-crontab 基於swoole的定時器程序,支援秒級處理
jobby 一個PHP 的定時任務管理器
cronlingo Express crontabs as human friends human php去看
看不懂英文我這裡有一個備份也可以查看點擊此處跳轉