如何確保線程池不丟失任務(wù)?
- 加快消費速度減少任務(wù)排隊拄显,降低丟失風(fēng)險;
- 利用鉤子方法裁蚁,當(dāng)任務(wù)超時時矢渊,任務(wù)重新入隊,注意重復(fù)執(zhí)行的問題枉证。
- 如果并發(fā)量不大的話矮男,可以考慮在拒絕策略中交由主線程完成,主線程會因此降低任務(wù)提交速度刽严,進而降低線程池負擔(dān)昂灵,形成反饋環(huán)
- 如果并發(fā)量大的話,可以重寫拒絕策略舞萄,將被拒絕的任務(wù)以某種形式進行持久化,隨后再次處理管削,這也是最穩(wěn)健的方案:
- 如果外部使用了MO等異步隊列倒脓,會相對簡單些,未能提交到線程時的任務(wù)含思,仍保留在MQ 中不要標(biāo)記為已消費