2017-05-26 53 views
0

我在我的sql數據庫中有100-150行數據用於PHP網站/應用程序。第二個更新sql數據的最佳方法

數據庫行中的每項代表一個'產品報價'。每個報價都有幾個基本屬性,有效性狀態和有效期限。

由於每個報價在網頁上列出,時鐘將倒計時到其給定的到期日期。如果某個要約的有效期狀態爲「有效」,那麼該要約的狀態將需要更新爲「過期」。除此之外,還需要發生一些其他PHP功能(這些發送交易電子郵件和更新用戶注意列表)

我正在使用的coundown計時器能夠在倒數到給定的終止日期時觸發回調。這可能會觸發一個AJAX命令來更新報價有效性狀態並執行任何我需要的操作。但是,如果我有100個人查看商品頁面,那麼在回調時會觸發100個事件,如果沒有人在我的頁面上,則該事件根本不會觸發。所以這不是一個可行的解決方案。

我認爲CRON工作,但我知道這些經常運行在最多一分鐘,再次這不適合作爲優惠到期第二。

像ebay這樣的網站如何更新他們的上市信息,每天有數千行數據在第二個項目上達到他們的結束時間?

是否有任何減少服務器負載的最佳實踐示例?

+0

當您輸入要約時,請添加其到期時間。當用戶訪問您的網站時,啓動計數器作爲到期時間 - 當前時間。所以你有一個計數器,你不需要更新表。當用戶使用優惠檢查時,如果使用時間少於過期時間。 –

+0

如果我有400名會員,該解決方案如何一次向所有400人發送電子郵件,並在到期時間發生時自動執行此事件? – Sjmc11

+0

所以,現在這是第二個問題,因爲您在問題中從未提到過這樣的內容。爲此你必須使用cron或其他選擇。 –

回答

0

更好的選擇是分兩步做。

刪除AJAX事件。使用ajax進行檢查:例如,當計時器到期(在ajax上)時,它們會禁用購買按鈕或其他所需的任務。

在web服務器上,做兩件事:首先,使用cron或類似的過期每分鐘。其次,在「購買」嘗試(如果您的網頁是商店),請檢查請求的優惠是否已經有效。

這是您可以使用的更好的方法。

相關問題