検索

ホームページ  >  に質問  >  本文

thinkphp5 で Redis を使用して 15 分以内に注文をキャンセルするにはどうすればよいですか?

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

过去多啦不再A梦过去多啦不再A梦2753日前1706

全員に返信(5)返信します

  • 漂亮男人

    漂亮男人2017-06-06 09:54:43

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

    返事
    0
  • 怪我咯

    怪我咯2017-06-06 09:54:43

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

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

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

    返事
    0
  • 高洛峰

    高洛峰2017-06-06 09:54:43

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

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-06-06 09:54:43

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

    返事
    0
  • 滿天的星座

    滿天的星座2017-06-06 09:54:43

    Redisは必要ありません

    MySQLで実現可能です

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

    返事
    0
  • キャンセル返事