目前有这样一个场景,每次会以文件流的形式推送一批数据(大概 500W 条)给服务器解析入库,该数据会先保存在磁盘上。因为读取数据到内存解析比较快,入库是 IO 操作比较慢,所以目前想到的思路是采用单生产者多消费者模型,其中多消费者采用线程池管理,Java 中使用 BlockingQueue 来做中间管道。
目前有这么一个需求,如果其中一个消费者入库出现异常,需要通知其他消费者停止消费,同时还要告知生产者放弃解析这批数据,直到下一批数据过来在此解析,请问下这种有什么好的方式来实现?
目前有这么一个需求,如果其中一个消费者入库出现异常,需要通知其他消费者停止消费,同时还要告知生产者放弃解析这批数据,直到下一批数据过来在此解析,请问下这种有什么好的方式来实现?