※ 引述《SuicideMiko (() => { return 1; })》之銘言:
: 我寫了一個logger
: 結構是兩個thread
: main thread是一般程式處理 call logger.info(...) 之類的 然後把log放進queue
: logger thread是一個loop 就一直檢查queue有沒有東西 有就做事這樣
: 但loop這個thread不知道怎麼結束會比較方便
: 我是把logger跟其他工具包成一個assembly
: 所以main會是別的專案
: 我想要在主專案這邊盡量減少設定tools的東西
: 像是開關logger之類的
: 所以不知道有沒有辦法
: 除了在main thread手動terminate logger loop以外
: 讓logger thread自己關閉ㄋ
: 有辦法抓main process的狀態 之類的嗎
: 謝謝 我跟咪口做愛
感覺像是 event driven 的應用情境
每個線程都能接觸到一個中心化的 event bus
然後某個 terminate 的事件會觸發各線程去執行自己的 tear down
看你整個系統怎麼設計的
我上次做這類時間驅動設計用的是 rabbit mq
蠻讚的 還有persistant & replay 功能 又不會像卡夫卡那樣過度複雜肥大
可以試試看