未払い注文の計画的削除を解決するためのスリープ機能の使用に関するディスカッション

WBOY
リリース: 2016-06-23 13:40:39
オリジナル
1514 人が閲覧しました

電子商取引ウェブサイトが商品を購入して注文を生成した後、通常、支払いの適時性の問題が発生します。
ユーザーが注文を行った後、一定期間内に注文が支払われない場合、注文はキャンセルされ、注文に占有されている商品の残量が解放されます
ネットで情報を収集しましたが、一般的に次の方法があります
1) Mysql 5.1 以降ではタイマーを作成できます
2) 注文を削除するための専用の php ページを作成し、作成しますサーバー側のスケジュールされたタスク: phpremoveExpiredOrders.php
3) ユーザーが注文を表示したら、注文ステータスを更新します

mysql タイマーとスケジュールされたタスクの作成方法についてあまり知らないので、方法 1) と方法 2 ) は一時的にパスされます
方法 3) 注文に占有されている商品の残量は解放できないため、パスします

そこで考えたのですが、生成された注文をユーザーが確認している間に checkpay.php ページをカールすることは可能でしょうか
checkpay で.php
sleep(2*3600);//支払い期限を 2 時間に設定します
if(order['status']= =0){
/*******無効な注文を削除し、残りの商品数量を解放します******/
}

1.curlタイムアウトを設定でき、curlを呼び出すページはスリープページの実行結果を待つ必要がありません
2.checkpay.phpにはページ出力コードはなく、インターネットで見つけたデータベースを操作するためのコードです。この場合、スリープ機能は多くのシステム リソースを占有しないので、この方法で無効な注文を処理できるかどうかを調べてみましょう。これをマスターできることを願っています。あなたは私を修正します

ディスカッションに返信(解決策)

sleepは現在のプログラムを数秒間ハングアップするだけです

ユーザーもWebサーバーも無駄に2時間待つことはありません

したがって、それは実現不可能です

mysql5.1 には上記のタイマーがありますが、それを使用しない (したくない) 可能性があり、実際のオペレーティング環境の mysql は 5.1 未満ではない可能性があります
オペレーティング システムのスケジュールされたタスクを使用する場合は、許可がありません
方法 3 については、「解放できない」「注文に占有されている商品の残り数量」は当然のことですが、注文は削除できるため、占有数量はリサイクルできます

最も可能性の高い方法は次のとおりです。残りの数量を表示する必要があるページを生成するときに、注文リサイクル プログラムを呼び出してください


モデレーターが丁寧に説明してくれてありがとう、モデレーターが言ったように、最良の解決策は、残りの数量を表示する必要があるページで残りの商品をリサイクルすることです。表示されますよ〜

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!