了解最新公司動態及行業資訊
原有用于私有化部署的小程序商城定時任務中主要有accesstoken刷新,拼團訂單狀態更新,砍價狀態更新等,而saas版小程序商城是在原有程序程序上的改造,之前已經完成根據入口文件動態修改數據庫定制;accesstoken按需獲??;accesstoken根據入口文件不同進行區分;對TP框架中的controller類進行改造,自動加載COMMON公共函數庫等;
對于定時任務的改造,這里一直存在顧慮是如果用戶偏多的情況下是不是會出現定時任務執行時間過長的問題,為什么有這個顧慮呢?因為原有程序在框架外沒有加入自己的緩存機制,導致數據庫查詢次數偏多,當數據沒有發生變化時,仍然去消耗服務器資源去進行查詢,所以在對定時任務改造前,首先對TP框架的model類進行了改造,在執行select,find,query方法時首先查詢是否存在緩存,如果有緩存就直接返回緩存結果,當執行add save delete方法時,返回前執行清空緩存操作,注意這里的清空緩存操作只清除和當前model相關的緩存,實際上在查詢緩存操作時每個model有一個唯一的緩存key,用戶保存已經存在的緩存,并且這個model類的緩存操作都是與入口文件相關的;
當對model類改造完成后,定時任務部分暫定使用線性操作,就是循環查詢所有saas用戶的入口文件,然后根據入口文件使用curl調用相關的任務接口,并且在總的定時任務接口部分使用了緩存,這里的緩存的作用時為了保證定時任務永遠只有一個在執行,避免了當定時任務執行時間偏長時,多個定時任務同時執行的問題;
最后貼出代碼共參考: