ホームページ  >  記事  >  バックエンド開発  >  Laravel5.2、スケジュールされたタスクにはサービスまたはキューのcrontabを使用する必要がありますか?

Laravel5.2、スケジュールされたタスクにはサービスまたはキューのcrontabを使用する必要がありますか?

WBOY
WBOYオリジナル
2016-12-01 00:25:281644ブラウズ

たとえば、開始時刻を指定して新しい一連のアクティビティを追加し、開始時刻に達すると自動的に開始状態に設定し、終了すると終了状態に設定します。
また、データベースにクエリを実行するか、それとも Redis に配置する必要がありますか?

返信内容:

たとえば、開始時刻を指定して新しい一連のアクティビティを追加し、開始時刻に達すると自動的に開始状態に設定し、終了すると終了状態に設定します。
また、データベースにクエリを実行するか、それとも Redis に配置する必要がありますか?

厳密に言えば、キュ​​ーはメッセージの送信のみに使用され、タスクには使用されません (ただし、Delayqueue を使用して実現することもできます) が、crontab を使用するのが最善です

アクティビティの開始時間と終了時間はコードで直接決定できます。あなたの言ったことに基づいて、ビジネスシナリオが異なる場合は、この一連のアクティビティの開始時間と終了時間を制御するための背景を用意するのが最善です。シンプルで直接的な crontab を使用することをお勧めします

データのクエリに関しては、私の個人的な提案は、データベースを保存し、Redis にクエリを実行し、同時に更新することです

  1. データベースのクエリが遅く、同時実行性が低い

  2. 同時に多数のオンライン アクティビティがあり、一定数の同時実行がある場合は、データベースがハングしないようにキャッシュを準備する必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。