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