【发布时间】:2017-04-13 09:23:22
【问题描述】:
我目前面临的问题是我想实现一个简单的主从模式,其中主通过将所有作业从开头发布到主题来初始化作业队列。奴隶每有空闲的工作能力就会拉动那些工作,拉动就是一次拉动一个工作。示例代码 on github 中的代码在特定时间拉取多条消息
subscriber.startAsync().awaitRunning();
Thread.sleep(params.y());
我不想这样,我只想从队列中拉出一条作业消息,让从机完成工作,工作完成后,调用拉取方法来拉另一条作业消息,但一次只能拉一条。由于我在 ExecutorService 中执行作业,因此如果我的线程池已满,我想确保我不会拉任何消息。我如何实现拉一条消息,将该作业填充到我的 ExecutorService 中,并且只拉下一条作业消息,如果有一个工作完成,并且一个线程没有工作?
【问题讨论】: