一個實現你要找的東西的好方法是使用一個在午夜執行的調度程序來加熱緩存。
https://laravel.com/docs/5.4/scheduling
首先,使用PHP的工匠打造的命令:
php artisan make:command WarmCache
,所以它看起來是這樣的你應該編輯:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class WarmCache extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'warmcache';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Warms Cache';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
// >>>> INSERT YOUR CACHE CODE HERE <<<<
}
}
您應該添加的代碼在handle()函數中加熱緩存,具體取決於你要緩存的內容,可能不需要發出http請求。但是,如果需要,您總是可以使用類似curl或guzzle的內容作爲http請求查詢頁面。
然後將它添加到應用程序/控制檯/內核 - > $命令:
$schedule->command('warmcache')->daily();
:
protected $commands = [
// ...
\App\Console\Commands\WarmCache::class,
// ...
];
此外,使得它執行在mignight此添加到應用程序/控制檯\內核調度()函數
最後,確保你已經設置了將執行laravel調度的crontask:
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
來源
2017-02-25 10:38:30
Rhu
的cronjob調用頁面出了問題? –
絕對是一種選擇。 – vincent