我的应用程序发送大量通知,对于每个通知,我收到一个未来,我会附加一个监听器
问题是最终jvm将耗尽内存,因为它发送这些事件并以更快的速度创建这些侦听器。 我想在我的应用程序中达到可配置的最大侦听器数时阻止。
在Java中处理这个问题的最佳方法是什么?
注意:我使用了有界阻塞队列方法,我收集所有期货并逐一处理它们。
有没有办法使用听众呢?
修改: 下面是代码。当我添加监听器时,如何在这里实现背压。我想阻止它是否已达到我的最大配置尺寸
final Future<PushNotificationResponse<SimpleApnsPushNotification>> future =apnsClient.sendNotification(pushNotification);
future.addListener(new GenericFutureListener<Future<PushNotificationResponse<SimpleApnsPushNotification>>>() {
@Override
public void operationComplete(final Future<PushNotificationResponse<SimpleApnsPushNotification>> future) throws Exception {
//do something
}
});