ホームページ >バックエンド開発 >PHPチュートリアル >crontab がバックグラウンド タスクを実行するときにテーブル全体のスキャンを回避する方法

crontab がバックグラウンド タスクを実行するときにテーブル全体のスキャンを回避する方法

WBOY
WBOYオリジナル
2016-06-23 13:32:221040ブラウズ

補足: タスクテーブルがあります。タスクテーブルには、フィールド、予想完了時間 (complete_time)、およびタスクのフィードバック内容 (フィードバック) があります。
タスクのフィードバック情報がなく、予想完了時刻の 1 日前、1 時間、または 1 分前である場合には、テーブルを定期的にスキャンし、タスク実行者にメッセージを送信する必要があります。 私の現在のアプローチは、crontab を使用してタスクを実行し、テーブルを 1 時間に 1 回スキャンすることですが、テーブル全体をスキャンする必要性を回避する方法はありますか。 ?
オンラインで待っています。


ディスカッションに返信(解決策)

誰かが私にアドバイスをくれるかもしれません。素晴らしい。

最後のスキャン後の位置を記録するためにコンテナを使用します

次回はこの位置からスキャンを開始します

最後のスキャン後の位置を記録するためにコンテナを使用します

次回はこの位置からスキャンを開始します

ただし、レコードを毎回スキャンする必要があるようにする必要があります。今回録音したら、次回は前のレコードを検索しないわけではありません。

フルテーブルスキャンを避けたくありませんか?言葉を取り戻しますか? どの記録をスキャンするか決めるのはあなた次第ではありませんか?
スキャン範囲がわからない場合、テーブル全体をスキャンできないわけはありません。

現在のアプローチは、リマインダーが必要なタスクに対して新しいリマインダー テーブルを生成することです。

このアプローチとモデレータのコンテナ追加の提案を組み合わせることで、テーブル全体のスキャンを回避できます。

フルテーブルスキャンを回避したくないですか?言葉を取り戻しますか? どの記録をスキャンするか決めるのはあなた次第ではありませんか?
スキャン範囲がわからない場合、テーブル全体をスキャンできないわけはありません。


現在のアプローチは、リマインダーが必要なタスク用に新しいリマインダー テーブルを生成することです。
このアプローチとモデレータのコンテナ追加の提案を組み合わせることで、テーブル全体のスキャンを回避できます。

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