【发布时间】:2014-04-04 12:08:56
【问题描述】:
我想使用 Spring SubscribableChannel 实现单个生产者..多个消费者问题。我无法解决这个问题。
例如,我有一个用户作为生产者,他的朋友作为消费者。所以当生产者用户做某事时,它必须发布给他的朋友。
真正的问题是生产者和消费者的关系是动态的,因为我可以随时取消与用户的好友关系,这意味着它不应该再听我的活动了。所以我想要某种 java 配置,我可以在其中订阅和取消订阅生产者的消费者,还必须有一些东西可以将消费者与生产者分离,以防生产者不再存在......
我在设计频道时遇到了困难,因为会有number of channel equal to number of users. 我也不知道如何设计 Spring Integration 附带的 MessageHandler。
有没有一些指向这个方向的例子。
到目前为止我所做的是我有一个配置 bean
@Configuration
public class ChannelConfig {
@Bean
public SubscribableChannel subscribeChannel() {
PublishSubscribeChannel channel = new PublishSubscribeChannel(getAsyncExecutor());
return channel;
}
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(2);
executor.setMaxPoolSize(50);
executor.setQueueCapacity(10000);
executor.setThreadNamePrefix("ChannelExecutor-");
executor.initialize();
return executor;
}
}
我将注入,但除此之外,这将是唯一的唯一渠道。我希望每个用户都有一个频道。
【问题讨论】: