背景:
ビジネス慣行では、それは多くの場合、(時間のかかる)タスクの処理に関連した非同期タスクを使用する方法です、あなたが実行するために定期的なタスクの形を取る必要があるかもしれません。crontabのLinuxは、この問題を解決するための優れたツールとなることができ、タイマーが付いています。
新しい非同期タスクは、スクリプトのcrontabの設定で実行する必要がある場合は、ライン上のすべての項目は×××管理者を変更します。サーバーの構成、通信と連携確認プロセスを移動する必要が避けられないので。
laravel自身のスケジュールタスクのスケジューリングは、この痛みのポイントに良い解決策になることができます。
laravelのタスクのスケジューリング
php artisan schedule:run
実装手順
1、crontabのタイミングタスクスケジューリングがlaravelを行っ増加-e
#每分钟执行一次laravel任务调度,注意项目的绝对路径必须写正确。
* * * * * * php /site-path/artisan schedule:run >> /dev/null 2>&1
手動でスケジュールされたテストを実行します。
php artisan schedule:run
2、職人コマンドコマンドラインスクリプトファイルを増やします
ない具体的な説明は、公式ドキュメントを参照してください。
新しいコンソールのカーネルコマンドラインスクリプトファイル情報に登録3、
コンソールのカーネルファイル/app/Console/Kernel.php
protected $commands = [
"App\\Console\\Commands\\MigrateCompanyDataCommand",//迁移代记账公司数据到对象表
"App\\Console\\Commands\\ReportCustomerSettleAccountEventCommand",//上报帐套结帐事件
"App\\Console\\Commands\\IndicatorComputeCommand",//指标计算
];
4、スケジューリング情報構成
スケジュール設定タスクの実行頻度のコマンド関連の増加が展開スケジュールされたタスクを完了します。
protected function schedule(Schedule $schedule)
{
$schedule->command('command任务文件signature')->hourly();
}
図5に示すように、周波数の実装に
参照:を照らし\コンソール\スケジューリング\ ManagesFrequencies
一般的なスケジュールオプション
-
- >のcron(「*」);カスタムのcronを実行するようにスケジュールされたタスクで
-
- > everyMinute(); 1分間に1回のタスクごとに実行
-
5分ごとにタスクを実行します。 - > everyFiveMinutes()
-
- > everyTenMinutes();タスクを実行するごとに10分
-
- > everyThirtyMinutes(); 30分ごとに実行するミッション
-
- >時間ごとに();時間ごとのタスクを実行します
-
- >毎日();深夜に毎日のタスクを実行します
-
- > dailyAt('13:00「); 13:00日々のタスクを実行します
-
- > twiceDaily(1、13); 1時・午後1:00毎日のタスクが実行されています
-
- >毎週();週一回のタスクを実行します
-
- >月額();月に一回のミッションを実行します
-
- > monthlyOn(4、'15:00「); 15:00 4月には、タスクを実行します
-
- >季刊();各四半期に一度実行します
-
- >毎年();年に一度実行
-
- >タイムゾーン( 'アメリカ/ニューヨーク');ゾーン設定
-
平日のタスクでのみ実行; - >平日()
-
- >日曜日();毎週日曜日のタスクを実行します
-
- >月曜日();毎週月曜日のタスクを実行します
-
- >火曜日();毎週火曜日のタスクを実行します
-
- >水曜日();毎週水曜日のタスクを実行します
-
- >木曜日();毎週木曜日のタスクを実行します
-
- >金曜日();毎週金曜日のタスクを実行します
-
- >土曜日();毎週土曜日実行中のタスク
-
- >($開始、$端)との間に、特定の期間に基づいてタスクを実行しています
- - >とき(閉鎖);テストの実行に基づいて特定のタスク