現(xiàn)在、laravel フレームワークを使用してプロジェクトを開発しています。このプロジェクトにはいくつかのデータが必要です。必要なデータは、データベース內(nèi)の數(shù)十のテーブルに対して関連するクエリ、計(jì)算、処理を?qū)g行することで取得されます。データ量が多いため、會社では、スケジュールされたタスクは毎晩 に実行を開始し、すべてのデータが処理された後に終了します。これで、データベース內(nèi)のデータを処理するためのメソッドをlaravelコントローラに記述できたので、このメソッドを通常のループで実行するだけで機(jī)能を?qū)g現(xiàn)できます。
しかし、定期的に実行する方法がわかりません。 phpのcliモードで実行されているのでしょうか?それともartisanコンソールを使って実行しますか?アドバイスをお探しですか?
學(xué)習(xí)是最好的投資!
crontab Linux の wget またはcurl コマンドを使用して、HTTP リクエストを通じてコン??トローラーにアクセスします。
1. 大量のデータの場合は、それをアプリケーション層から取り出して MySQL ストアド プロシージャまたは関數(shù)を作成しないことが最善です。 (呼び出しは mysql イベントを通じて呼び出すことができます)、この処理によりリソースが大幅に節(jié)約されます。
2. ストアド プロシージャへの書き込み中は、Linux の crond スケジュール タスクと連攜してスケジュールされた処理を行うことができます。
Laravel のスケジューリングはあなたのニーズに非常によく合っていると思います。中國語のドキュメントはここにあります。
http://d.laravel-china.org/do...
Laravelにはタスクスケジュール機(jī)能がありますので、もっとドキュメントを読むことをお勧めします?
これは會社のニーズに応じて異なりますが、運(yùn)用保守がある場合は、データを操作するためのメソッドを自分で記述し、運(yùn)用保守に定期的にこのメソッドを要求するスクリプトを作成させることができます。運(yùn)用とメンテナンスがなく、上司がサーバーに觸れさせてくれない場合は、データを操作するための PHP スクリプトを作成し、スリープとループを使用してそれを?qū)g行し、ファイルを接続に置き、ヘッダーを使用することを選択できます。リクエストリンクにアクセスする機(jī)能
スケジュールされたタスク用にいくつかのライブラリをお勧めします。ロードするにはコンポーザーを使用します
Dispatcher Laravel ベースのスケジュールされたタスク管理
swoole-crontab 2 次レベルの処理をサポートする swoole ベースのタイマー プログラム
jobby PHP のスケジュールされたタスク マネージャー
cronlingo crontab を人間に優(yōu)しいフレーズとして表現(xiàn)します
何もすることがない場合は、 awesomes にアクセスできます - php で表示します
英語が読めない場合は、ここにバックアップがあります。ここをクリックしてジャンプすることでも表示できます