之前因為某些特定崗位的人不知道是不方便還是什麼的原因,所以隨便做了個獨立於所有系統之外的郵件審批服務,功能是那些人在郵件裡給待審批單據發個“同意”就自動審批通過,大致分為3部分:第一部分每隔固定時間去郵件服務器抓一批郵件下來;第二部分分析郵件格式,如果符合就提取必須的郵件內容;第三部分提交審批流驅動進行審批。
我一直想做個移動端APP然後廢掉它算了,不過似乎領導覺得這個東西還能撐下去,總之就一時半會是不可能干掉了。
所以,游戲之做還是得優化一下,這裡就說說第一部分:
每隔固定時間抓取然後執行存在的問題,比如說現在是每隔十分鐘抓一次,處理不怎麼及時,而且即使沒有新郵件也會去抓一次,另外還有一個隱藏的問題,就是為什麼設置10分鐘,主要是郵件服務器那邊還有其他的處理,需要一個回執,但是這是個單線程的服務(因為用的人很少)所以擔心設置的時間短了這一批抓取的還沒處理完,這裡有一些無關的事都耦合上了。
解決辦法:不再去抓郵件,而是如果郵件審批服務空閒了,就去郵件服務器上注冊一下,如果有了新郵件,就由郵件服務器發布任務,這樣以後用的人多了還可以做分布式處理(當然,我還是傾向於不用這種方式了,因為各種客戶端發出來的郵件千奇百怪,解析難保正確)。
本欄目