thinkphp5 で Redis を使用して 15 分以内に注文をキャンセルするにはどうすればよいですか?
过去多啦不再A梦
过去多啦不再A梦 2017-06-06 09:52:43
0
5
1703

1. キューを使用して注文が 15 分を超えているかどうかを検出したいのですが、15 分を超えている場合はタイムアウトキャンセルするようにデータベースを変更しますが、開始方法がわかりません。

过去多啦不再A梦
过去多啦不再A梦

全員に返信(5)
漂亮男人

この機能は、ユーザーの行動をトリガーするために作成できます。たとえば、ユーザーが注文を確認し、支払いが行われておらず、15 分を超えていると判断した場合、注文ステータスがタイムアウトキャンセルに変更されます。表示されておらず、ステータスも更新されていない注文は、スケジュールされたタスクによって早朝に更新される可能性があります。注文量が多い場合、すべての注文のステータスをリアルタイムで同期することはお勧めできませんし、意味がありません。

いいねを押す +0
刘奇

データベースポーリング: スケジュールされたタスクを使用してデータベースをポーリングし、関連する注文処理をクエリします。この方法は、小規模なプロジェクトでシンプルで実用的であり、保守が簡単です。

リングキュー: 参照: http://mp.weixin.qq.com/s/mvF...

キューサービス: 遅延キュー処理を使用する 参考: http://tech.youzan.com/queuin...

いいねを押す +0
小葫芦

より良い解決策は、前述のリング キューであるタイム ホイールを使用することです。
有効期限を 15 分に設定し、キーの削除イベントをリッスンし、対応する操作を実行することもできます。

いいねを押す +0
phpcn_u1582

タイマーを使うといいんじゃないですか?

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

Redisは必要ありません

MySQLで実現可能です

計画:
PHPスクリプトを作成し、デーモンプロセスを実行し、
whileループを実行し、ライブラリを確認します。注文に15分以上かかり、注文が未払いで未発送の場合、キャンセル操作が実行されます

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