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