場景:
用戶創(chuàng)建一個招標項目,設置了招標開始時間,當時間達到時,自動開啟招標項目,讓前臺用戶可以進行投標.
問題:
當用戶發(fā)布一個招標項目后,如何在添加招標項目function里面同時調(diào)用添加一個定時器,項目訪問量不大,單進程即可滿足.
能幫忙成功實現(xiàn)的本人單獨發(fā)紅包,謝謝.
招標項目開啟時需要主動發(fā)送信息通知什么的嗎?還是說只是別人打開頁面顯示的是已經(jīng)可以投標了?
如果是前者,程序啟動時,你添加一個循環(huán)跑的定時器,每一分鐘跑一次,就是遍歷所有是未開始狀態(tài)并且時間已經(jīng)達到開始時間的任務(查詢條件類似 status=0 AND start_time<=time()
),修改狀態(tài),發(fā)送消息就行了。
如果是后者,實際上不需要用定時器之類的,你設計表的時候設計一個開始時間和狀態(tài),每次訪問時,如果狀態(tài)是未開始,并且時間已經(jīng)達到開始時間,就將狀態(tài)設為已開始就行了。
為每一個項目添加一個定時器不適用于你這個場景,這種情況,你還得考慮程序重啟后的場景,如果未開始的項目多了,那又得多少個計時器。
illuminate/database或者think-orm的模型,都有獲取器和計算屬性;
可以利用獲取器和計算屬性,在獲取列表或者獲取詳情時,動態(tài)計算當前的招投標是否開始,返回給前端。