我對此有幾點想法,但這裏是我需要做的,只是想要一些第二個意見。如何檢查拍賣是否完成 - 觸發PHP處理
我正在寫一個PHP/SQL的小型拍賣網站,但我碰到了一個障礙。
當一個項目完成後,就像eBay一樣,我需要能夠告訴它已完成並將電子郵件發送給誰贏了它,誰賣了它。
我能想到的唯一方法是安排一段代碼,以檢查哪些拍賣已結束,但肯定有更好的方法?
我對此有幾點想法,但這裏是我需要做的,只是想要一些第二個意見。如何檢查拍賣是否完成 - 觸發PHP處理
我正在寫一個PHP/SQL的小型拍賣網站,但我碰到了一個障礙。
當一個項目完成後,就像eBay一樣,我需要能夠告訴它已完成並將電子郵件發送給誰贏了它,誰賣了它。
我能想到的唯一方法是安排一段代碼,以檢查哪些拍賣已結束,但肯定有更好的方法?
請分享根據投標結束日期(如何知道投標結束日期)詢問出價最高者的SQL腳本,並將產品獎勵給出價最高的人
我會設置一個cron作業來運行每10-20-30-60分鐘等發送電子郵件和更新拍賣詳情。
如果你的腳本很快,每分鐘左右運行它可能會沒問題。
請注意,許多共享主機只會允許您每小時發送一定數量的電子郵件。
做這些郵件需要被立即發送出去?
我可以看到你正在努力才達到2可能出現的問題和目標:
if (time() >= ($timestamp + $duration)) {}
(其中$timestamp
是試聽的開始,$duration
是試聽的持續時間),以阻止可能的不良用戶試圖做到這一點。我想你誤解了這個問題,它是關於一個在拍賣完成時調用的聽衆=>在特定日期和時間發起的一段代碼。 – 2011-05-11 13:32:12
@Matthieu,屬於第一個可能的問題。你必須爲此使用AJAX和Javascript。你必須尋找試鏡的開始,然後繼續檢查背景是什麼時間以及試鏡是否結束。 – Shoe 2011-05-11 13:34:45
@Charliepiga不,他正在談論服務器端,處理拍賣......如果沒有人訪問拍賣頁面,它會完成。它不會被處理。 – 2011-05-11 13:40:40
該解決方案可以在多個部分:
腳本經由的Cron推出(每5分鐘可能是好的,甚至更少......)。它檢測到已完成的拍賣,並且將它們放入隊列。
腳本,隊列中的持續相當多運行,那工藝項目。
需要注意的是:
優勢:
其它附加信息:
要檢查其他腳本是否正在運行,您可以使用一個文件並在其中寫入「1」或「0」(=正在運行/未運行)。第一個腳本讀取它,第二個腳本寫入它...您也可以使用數據庫來完成它。或者你也可以使用系統工具或shell命令...
這是正確的,它是我需要的一種傾聽者......但是我不能每隔1分鐘運行一次,因爲這太慢了,因爲有人可能會馬上付錢......如果網站每1000個拍賣會就會運行10次秒不會運行,因爲腳本可能需要60秒才能運行 – Lee 2011-05-11 14:01:38
不,您是否閱讀我的答案?在網站上,您需要檢查拍賣是否完成。如果是這樣,你不能允許任何行動。處理(決定誰勝出,發送電子郵件,處理付款......)是在後臺異步完成的。 1000個拍賣將在後臺一次處理一個,它不會減慢你的網站。 **我不明白你在哪裏看到問題**。 – 2011-05-11 14:06:56
我發現問題的原因是腳本需要60秒才能完成1000次,那麼1000次完成的結果會在60秒內發生什麼? – Lee 2011-05-11 14:08:48
我假設你希望有某種傾聽者......我沒有意識到任何事情,並且只是每隔一分鐘就安排一次支票,但是......我對自己的回答沒有足夠的信心把它作爲一個「答案」。 – Dave 2011-05-11 12:44:28
eBay是否已經發送此信息? – Emyr 2011-05-11 13:12:14
這是正確的,它是我需要的一種傾聽者......但是我不能每隔1分鐘運行一次,因爲這太慢了,因爲有人可能會馬上支付......如果網站每1000個拍賣會就會運行10次秒不會工作,因爲腳本可能需要60秒才能運行 – Lee 2011-05-11 14:01:44