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