簡體   English   中英

5分鍾后更新數據庫

[英]Update database after 5 minutes

我創建了一個IPN代碼,該代碼使paypal可以為購買的商品更新數據庫。 我在想,盡管購買我的商品的人可能不會在結帳時確認,或者在他們確認結帳時,其他人也可能在通過貝寶確認之前也單擊“立即購買”按鈕。

所有這些的重點是,我想找出解決此問題的最佳方法。 我的想法是,當他們單擊“立即購買”按鈕后,它將商品設置為待處理狀態,他們有5分鍾的時間來確認購買或將其發送回去。

請幫助..如果需要,我可以提供我的代碼。

我建議使用類似Resque的東西-有一個PHP端口( https://github.com/chrisboulton/php-resque )。

  • 當用戶轉到PayPal時,將產品的狀態設置為“保留”,並創建計划從現在開始運行5分鍾的Resque作業。
  • 如果用戶購買產品,請將狀態從“保留”更改為“已售”。
  • 當Resque作業在5分鍾后運行時,它將檢查狀態是否為“保留”,如果是,則將其更改回“可用”。
  • 如果狀態為“已售出”,則不執行任何操作。

如果您不想使用Resque,則可以做一些更簡單的事情,例如cron作業,該作業將選擇狀態為“已保留”且狀態已設置為5分鍾以上的所有產品。 然后,您再次將該狀態更改為“可用”。 您可以每60秒運行一次cronjob。

但是,這可能會遇到復雜的競爭條件,並且靈活性會降低,因此,如果可以的話,我將實現一個基於隊列的系統。

首先對不起,我不能發表評論,因為我的原因在這里。 因此,將其鎖定的想法是用戶友好的,並且5分鍾就可以了。 但是,付款完成后,我會通過PayPal更新我的庫存。 誰先付款...但是我會編寫一個ajax腳本來檢查用戶的庫存,該用戶在購物籃中有此物品,並且當庫存更改為0時,我會發出一條警告消息,例如

alert('Item Xy changed his state to 0');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM