2012-07-24 65 views
0

我對高級MySQL並不是很有經驗,但我想知道實現超時的最佳方式是什麼。我有一個iPhone應用程序,可以在創建要寫回的內容時「鎖定」表中的一行。這只是一個BOOL列,我來回切換。問題是,如果我的應用程序崩潰或者在鎖定時失去網絡連接,它將無法解鎖。我想在服務器上設置一個5分鐘的定時器或其他東西,以便在這段時間內未能完成該過程時解鎖該行。我的網頁API是用PHP編寫的。鎖定行的MySQL定時器

我可以用MySQL來做到這一點嗎?我需要創建一個cron作業嗎?

+0

你是如何鎖定這一行的?當會話結束時(連接丟失),釋放任何表或行級鎖。 – 2012-07-24 17:31:34

+0

我正在做手動,將列設置爲1或0.但它使用Web服務作爲中間人,所以iPhone從不讓Web服務知道它已斷開連接。 – mkral 2012-07-24 19:24:03

回答

1

您可以創建一個服務器端應用程序(cron作業可以工作),該應用程序定期查看帶鎖的行,並在它們過期時解鎖它們。要知道它們是否已過期,您需要包含一個日期時間列,該列被設置爲應用鎖定的當前時間。

或者,您可以跳過服務器端應用程序,只讓iPhone應用程序檢查日期時間,並在足夠長的時間內重置鎖定。

無論哪種情況,關鍵是要添加一個日期時間列並利用它來了解鎖的年齡。

+0

這是一個好主意,我將實施你的第二個建議。我寧願在服務器上運行較少的應用程序 – mkral 2012-07-24 16:16:48