Linux は crontab を使用し、ウィンドウのようなインターフェイス システムには独自のカスタマイズされたタスクがあります。スケジュールされたタスクのcurlを使用してphpファイルを指定するか、phpを使用してphpファイルを実行します。この場合、1分ごとのスケジュールアクセス(ポーリングと同様)を行うことで、PHPファイルにアクセスする際に、格納されているデータテーブルのデータ(条件付き2時間分のデータ)を読み込んで、キューにデータを投入する必要があります(回避のため)データ量が多すぎる場合、大量の情報を送信するとサーバーリソースの過剰な使用につながります)、最後にキューから定量的なデータを抽出してデータを送信します
私のアイデアは、キューを介したタスクの配布を遅らせることです。つまり、2 時間後にタスクをトリガーし、タスク内でテキスト メッセージを送信します。
以下はドキュメントのリンクです:
遅延配信のキュー
SMS通知
ユーザーの携帯電話番号、テキストメッセージの内容、送信時刻を保存するテーブルを作成します。
ユーザーはワンクリックで新しいレコード行を追加できます。
スケジュールされたタスクを設定し、毎分確認し、時間が来たら送信し、送信後に記録を削除します
実行するタスク名と実行時間をredisオーダードセットに入れて定期的にredisオーダードセットのスコアを確認し、範囲内であれば実行タスクを取り出す
ユーザーが操作すると、操作時間をテーブルに確実に保存し、デーモンは 2 時間以内にテキスト メッセージを送信するまでクエリを続けます
これにはタイマーとメッセージキューが必要です。 。 。
Linux は crontab を使用し、ウィンドウのようなインターフェイス システムには独自のカスタマイズされたタスクがあります。スケジュールされたタスクのcurlを使用してphpファイルを指定するか、phpを使用してphpファイルを実行します。この場合、1分ごとのスケジュールアクセス(ポーリングと同様)を行うことで、PHPファイルにアクセスする際に、格納されているデータテーブルのデータ(条件付き2時間分のデータ)を読み込んで、キューにデータを投入する必要があります(回避のため)データ量が多すぎる場合、大量の情報を送信するとサーバーリソースの過剰な使用につながります)、最後にキューから定量的なデータを抽出してデータを送信します
crontabを使用してデータベースのタスクキューを実行します
Workerman や Swoole などの PHP 非同期フレームワークを使用して、タイマーを作成し、必要なときにタスクを実行できます。 ! !
トリガーされる時間とイベントを保存します。スクリプトは毎分データを実行し、時間になったら実行します。これが最も簡単です
。