我有一个Runnable
,这是卡夫卡的消费者。我正在我的应用程序中运行此消费者的N个实例。
目前,如果消费者中存在错误(异常),则只记录错误并停止工作。在这种情况下,我有N-1个消费者在运行。
有没有办法自动启动消费者的新实例并运行它,所以我可以再次拥有N个消费者?
我想要实现的逻辑与Supervisord相同,Supervisord跟踪进程并在需要时重新启动它们。虽然,我宁愿有一些标准的解决方案而不是自己编写。
我的Runnable
现在就像这样管理:
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.execute(consumerInstance1);
executor.execute(consumerInstance2);