mysql - PHP でスケジュールされたタスク。操作の実行後、2 時間経過してからユーザーにテキスト メッセージを送信します。
ringa_lee
ringa_lee 2017-05-16 13:04:54
0
9
725

要件は、ユーザーが操作を実行した後、2 時間カウントダウンし、その時点で別の操作を実行することです。

しかし、今ではこの 2 時間を計る方法がありません。

何か良いアイデアはありますか

ringa_lee
ringa_lee

ringa_lee

全員に返信(9)
巴扎黑

私のアイデアは、キューを介したタスクの配布を遅らせることです。つまり、2 時間後にタスクをトリガーし、タスク内でテキスト メッセージを送信します。
以下はドキュメントのリンクです:

  • 遅延配信のキュー

  • SMS通知

いいねを押す +0
PHPzhong

ユーザーの携帯電話番号、テキストメッセージの内容、送信時刻を保存するテーブルを作成します。
ユーザーはワンクリックで新しいレコード行を追加できます。
スケジュールされたタスクを設定し、毎分確認し、時間が来たら送信し、送信後に記録を削除します

いいねを押す +0
洪涛

実行するタスク名と実行時間をredisオーダードセットに入れて定期的にredisオーダードセットのスコアを確認し、範囲内であれば実行タスクを取り出す

いいねを押す +0
曾经蜡笔没有小新

ユーザーが操作すると、操作時間をテーブルに確実に保存し、デーモンは 2 時間以内にテキスト メッセージを送信するまでクエリを続けます

いいねを押す +0
给我你的怀抱

これにはタイマーとメッセージキューが必要です。 。 。

いいねを押す +0
过去多啦不再A梦

Linux は crontab を使用し、ウィンドウのようなインターフェイス システムには独自のカスタマイズされたタスクがあります。スケジュールされたタスクのcurlを使用してphpファイルを指定するか、phpを使用してphpファイルを実行します。この場合、1分ごとのスケジュールアクセス(ポーリングと同様)を行うことで、PHPファイルにアクセスする際に、格納されているデータテーブルのデータ(条件付き2時間分のデータ)を読み込んで、キューにデータを投入する必要があります(回避のため)データ量が多すぎる場合、大量の情報を送信するとサーバーリソースの過剰な使用につながります)、最後にキューから定量的なデータを抽出してデータを送信します

いいねを押す +0
仅有的幸福

crontabを使用してデータベースのタスクキューを実行します

いいねを押す +0
滿天的星座

Workerman や Swoole などの PHP 非同期フレームワークを使用して、タイマーを作成し、必要なときにタスクを実行できます。 ! !

いいねを押す +0
Ty80

トリガーされる時間とイベントを保存します。スクリプトは毎分データを実行し、時間になったら実行します。これが最も簡単です

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート