業(yè)務(wù)每次請求都會調(diào)用一次定時器,如果下次請求來的時候上次定時器還沒有處理完會發(fā)生什么?
??
在手冊里看的:
2、添加的定時任務(wù)在當(dāng)前進(jìn)程執(zhí)行(不會啟動新的進(jìn)程或者線程),如果任務(wù)很重(特別是涉及到網(wǎng)絡(luò)IO的任務(wù)),可能會導(dǎo)致該進(jìn)程阻塞,暫時無法處理其它業(yè)務(wù)。所以最好將耗時的任務(wù)放到單獨的進(jìn)程運(yùn)行,例如建立一個/多個Worker進(jìn)程運(yùn)行
這個看情況。
如果是長連接應(yīng)用,定時器里的業(yè)務(wù)代碼發(fā)生阻塞的時候,這個進(jìn)程維持的長連接有新的請求發(fā)過來,這個請求會排隊等待定時器執(zhí)行完畢后才會被處理。
如果是短連接應(yīng)用,定時器里的業(yè)務(wù)代碼發(fā)生阻塞,這時候有新的連接發(fā)起請求,當(dāng)前進(jìn)程不會去接受這個新的連接,其它空閑的連接會去接受這個新連接。如果所有進(jìn)程都發(fā)生定時器阻塞,那么哪個進(jìn)程先執(zhí)行完定時器并且進(jìn)入空閑狀態(tài)哪個進(jìn)程先去接受這個新連接,然后處理連接上發(fā)來的請求。