我有2個方面需要會話管理,用2個不同到期日:Zend的Session和命名空間到期
- 行政區域 - 20分鐘
- 保留區 - 3分鐘
使用Zend_Session
,我該如何管理同一用戶?
重要的是要注意,預留區域的行爲非常像Ticketmaster,其中保持精確到第二位的關鍵是至關重要的。
我目前的實施利用了Zend_Session_SaveHandler_DbTable
,我想堅持下去,如果可能的話。
我在預訂表上的主要會話表中存儲Session_ID
以表示預留。這很好,因爲它允許我使用垃圾回收來清理廢棄的會話(我每分鐘都會觸發一次垃圾回收)。
我的這個實現的問題是,我不知道如何管理行政區的會話,給定時間差異。
你能解釋一下你對棄用會話做了些什麼嗎?您的cron工作是否對會話ID過期的預訂做了些什麼? –
@TimFountain cron作業每分鐘都會簡單地調用會話垃圾回收(請參閱'Zend_Session_SaveHandler_DbTable :: gc()')。垃圾回收會刪除會話記錄,並且由於我在預留表上的Session_ID上有一個innoDB外鍵約束,因此它會將會話ID外鍵設置爲NULL,從而刪除預留。 – Travis
您的用戶在進行預訂時是否登錄到網站? –