※ 引述《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 功能 又不会像卡夫卡那样过度复杂肥大
可以试试看