diff --git a/tenant/src/main/java/org/killbill/billing/tenant/api/TenantCacheInvalidation.java b/tenant/src/main/java/org/killbill/billing/tenant/api/TenantCacheInvalidation.java
index 776e6b1..6b3a2bb 100644
--- a/tenant/src/main/java/org/killbill/billing/tenant/api/TenantCacheInvalidation.java
+++ b/tenant/src/main/java/org/killbill/billing/tenant/api/TenantCacheInvalidation.java
@@ -42,6 +42,7 @@ import org.killbill.billing.tenant.glue.DefaultTenantModule;
import org.killbill.billing.util.config.TenantConfig;
import org.killbill.bus.api.PersistentBus;
import org.killbill.bus.api.PersistentBus.EventBusException;
+import org.killbill.commons.concurrent.Executors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -67,22 +68,21 @@ public class TenantCacheInvalidation {
private final Map<TenantKey, CacheInvalidationCallback> cache;
private final TenantBroadcastDao broadcastDao;
- private final ScheduledExecutorService tenantExecutor;
private final TenantConfig tenantConfig;
private final PersistentBus eventBus;
private final TenantDao tenantDao;
private AtomicLong latestRecordIdProcessed;
private volatile boolean isStopped;
+ private ScheduledExecutorService tenantExecutor;
+
@Inject
public TenantCacheInvalidation(@Named(DefaultTenantModule.NO_CACHING_TENANT) final TenantBroadcastDao broadcastDao,
- @Named(DefaultTenantModule.TENANT_EXECUTOR_NAMED) final ScheduledExecutorService tenantExecutor,
@Named(DefaultTenantModule.NO_CACHING_TENANT) final TenantDao tenantDao,
final PersistentBus eventBus,
final TenantConfig tenantConfig) {
this.cache = new HashMap<TenantKey, CacheInvalidationCallback>();
this.broadcastDao = broadcastDao;
- this.tenantExecutor = tenantExecutor;
this.tenantConfig = tenantConfig;
this.tenantDao = tenantDao;
this.eventBus = eventBus;
@@ -92,14 +92,11 @@ public class TenantCacheInvalidation {
public void initialize() {
final TenantBroadcastModelDao entry = broadcastDao.getLatestEntry();
this.latestRecordIdProcessed = entry != null ? new AtomicLong(entry.getRecordId()) : new AtomicLong(0L);
-
+ this.tenantExecutor = Executors.newSingleThreadScheduledExecutor("TenantExecutor");
+ this.isStopped = false;
}
public void start() {
- if (isStopped) {
- logger.warn("TenantExecutor is in a stopped state, abort start sequence");
- return;
- }
final TimeUnit pendingRateUnit = tenantConfig.getTenantBroadcastServiceRunningRate().getUnit();
final long pendingPeriod = tenantConfig.getTenantBroadcastServiceRunningRate().getPeriod();
tenantExecutor.scheduleAtFixedRate(new TenantCacheInvalidationRunnable(this, broadcastDao, tenantDao), pendingPeriod, pendingPeriod, pendingRateUnit);
diff --git a/tenant/src/main/java/org/killbill/billing/tenant/glue/DefaultTenantModule.java b/tenant/src/main/java/org/killbill/billing/tenant/glue/DefaultTenantModule.java
index 6770c67..af1c9f7 100644
--- a/tenant/src/main/java/org/killbill/billing/tenant/glue/DefaultTenantModule.java
+++ b/tenant/src/main/java/org/killbill/billing/tenant/glue/DefaultTenantModule.java
@@ -18,8 +18,6 @@
package org.killbill.billing.tenant.glue;
-import java.util.concurrent.ScheduledExecutorService;
-
import org.killbill.billing.glue.TenantModule;
import org.killbill.billing.platform.api.KillbillConfigSource;
import org.killbill.billing.tenant.api.DefaultTenantInternalApi;
@@ -46,8 +44,6 @@ public class DefaultTenantModule extends KillBillModule implements TenantModule
public static final String NO_CACHING_TENANT = "NoCachingTenant";
- public static final String TENANT_EXECUTOR_NAMED = "TenantExecutor";
-
public DefaultTenantModule(final KillbillConfigSource configSource) {
super(configSource);
}
@@ -79,11 +75,6 @@ public class DefaultTenantModule extends KillBillModule implements TenantModule
bind(TenantCacheInvalidation.class).asEagerSingleton();
}
- protected void installExecutor() {
- final ScheduledExecutorService tenantExecutor = org.killbill.commons.concurrent.Executors.newSingleThreadScheduledExecutor("TenantExecutor");
- bind(ScheduledExecutorService.class).annotatedWith(Names.named(TENANT_EXECUTOR_NAMED)).toInstance(tenantExecutor);
- }
-
@Override
protected void configure() {
installConfig();
@@ -91,6 +82,5 @@ public class DefaultTenantModule extends KillBillModule implements TenantModule
installTenantService();
installTenantUserApi();
installTenantCacheInvalidation();
- installExecutor();
}
}