private ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
public void addSubscriber(Subscriber subscriber) {
- DMaaPPollingRequest pollingTask = new DMaaPPollingRequest(subscriber, droolsEngine);
- ScheduledFuture future = service
- .scheduleAtFixedRate(pollingTask, 0, subscriber.getPeriod(), TimeUnit.MILLISECONDS);
- pollingRequests.put(subscriber.getTopic(), future);
+ if (!pollingRequests.containsKey(subscriber.getTopic())) {
+ DMaaPPollingRequest pollingTask = new DMaaPPollingRequest(subscriber, droolsEngine);
+ ScheduledFuture future = service
+ .scheduleAtFixedRate(pollingTask, 0, subscriber.getPeriod(), TimeUnit.MILLISECONDS);
+ pollingRequests.put(subscriber.getTopic(), future);
+ }
}
public void removeSubscriber(Subscriber subscriber) {