You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2016/09/23 16:08:56 UTC
[1/2] activemq-artemis git commit: NO-JIRA: using scheduled component
on message counters
Repository: activemq-artemis
Updated Branches:
refs/heads/master d64903fcc -> 42c708094
NO-JIRA: using scheduled component on message counters
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/b98c24e7
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/b98c24e7
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/b98c24e7
Branch: refs/heads/master
Commit: b98c24e749f61e3d6ca1ca10e69e44c3469a54d4
Parents: d64903f
Author: Clebert Suconic <cl...@apache.org>
Authored: Thu Sep 15 13:49:55 2016 -0400
Committer: Clebert Suconic <cl...@apache.org>
Committed: Fri Sep 23 09:09:37 2016 -0400
----------------------------------------------------------------------
.../impl/MessageCounterManagerImpl.java | 73 +++++---------------
.../management/impl/ManagementServiceImpl.java | 2 +-
2 files changed, 18 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b98c24e7/artemis-server/src/main/java/org/apache/activemq/artemis/core/messagecounter/impl/MessageCounterManagerImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/messagecounter/impl/MessageCounterManagerImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/messagecounter/impl/MessageCounterManagerImpl.java
index 0f60cf6..a5c1be4 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/messagecounter/impl/MessageCounterManagerImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/messagecounter/impl/MessageCounterManagerImpl.java
@@ -20,13 +20,14 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.Future;
+import java.util.concurrent.Executor;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration;
import org.apache.activemq.artemis.core.messagecounter.MessageCounter;
import org.apache.activemq.artemis.core.messagecounter.MessageCounterManager;
+import org.apache.activemq.artemis.core.server.ActiveMQScheduledComponent;
/**
* A MessageCounterManager
@@ -41,45 +42,25 @@ public class MessageCounterManagerImpl implements MessageCounterManager {
private final Map<String, MessageCounter> messageCounters;
- private boolean started;
-
- private long period = MessageCounterManagerImpl.DEFAULT_SAMPLE_PERIOD;
-
- private MessageCountersPinger messageCountersPinger;
+ private final MessageCountersPinger messageCountersPinger;
private int maxDayCount = MessageCounterManagerImpl.DEFAULT_MAX_DAY_COUNT;
- private final ScheduledExecutorService scheduledThreadPool;
-
- public MessageCounterManagerImpl(final ScheduledExecutorService scheduledThreadPool) {
+ public MessageCounterManagerImpl(final ScheduledExecutorService scheduledThreadPool, Executor executor) {
messageCounters = new HashMap<>();
-
- this.scheduledThreadPool = scheduledThreadPool;
+ messageCountersPinger = new MessageCountersPinger(scheduledThreadPool, executor, MessageCounterManagerImpl.DEFAULT_SAMPLE_PERIOD, TimeUnit.MILLISECONDS, false);
}
@Override
public synchronized void start() {
- if (started) {
- return;
- }
-
- messageCountersPinger = new MessageCountersPinger();
- Future<?> future = scheduledThreadPool.scheduleAtFixedRate(messageCountersPinger, 0, period, TimeUnit.MILLISECONDS);
- messageCountersPinger.setFuture(future);
+ messageCountersPinger.start();
- started = true;
}
@Override
public synchronized void stop() {
- if (!started) {
- return;
- }
-
messageCountersPinger.stop();
-
- started = false;
}
@Override
@@ -89,22 +70,12 @@ public class MessageCounterManagerImpl implements MessageCounterManager {
@Override
public synchronized void reschedule(final long newPeriod) {
- boolean wasStarted = started;
-
- if (wasStarted) {
- stop();
- }
-
- period = newPeriod;
-
- if (wasStarted) {
- start();
- }
+ messageCountersPinger.setPeriod(newPeriod);
}
@Override
public long getSamplePeriod() {
- return period;
+ return messageCountersPinger.getPeriod();
}
@Override
@@ -155,17 +126,18 @@ public class MessageCounterManagerImpl implements MessageCounterManager {
}
}
- private class MessageCountersPinger implements Runnable {
+ private class MessageCountersPinger extends ActiveMQScheduledComponent {
- private boolean closed = false;
-
- private Future<?> future;
+ MessageCountersPinger(ScheduledExecutorService scheduledExecutorService,
+ Executor executor,
+ long checkPeriod,
+ TimeUnit timeUnit,
+ boolean onDemand) {
+ super(scheduledExecutorService, executor, checkPeriod, timeUnit, onDemand);
+ }
@Override
- public synchronized void run() {
- if (closed) {
- return;
- }
+ public void run() {
synchronized (messageCounters) {
for (MessageCounter counter : messageCounters.values()) {
@@ -174,17 +146,6 @@ public class MessageCounterManagerImpl implements MessageCounterManager {
}
}
- public void setFuture(final Future<?> future) {
- this.future = future;
- }
-
- synchronized void stop() {
- if (future != null) {
- future.cancel(false);
- }
-
- closed = true;
- }
}
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b98c24e7/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
index 22b4e50..26b6450 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
@@ -190,7 +190,7 @@ public class ManagementServiceImpl implements ManagementService {
this.messagingServer = messagingServer;
this.pagingManager = pagingManager;
- messageCounterManager = new MessageCounterManagerImpl(scheduledThreadPool);
+ messageCounterManager = new MessageCounterManagerImpl(scheduledThreadPool, messagingServer.getExecutorFactory().getExecutor());
messageCounterManager.setMaxDayCount(configuration.getMessageCounterMaxDayHistory());
messageCounterManager.reschedule(configuration.getMessageCounterSamplePeriod());
[2/2] activemq-artemis git commit: This closes #793
Posted by jb...@apache.org.
This closes #793
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/42c70809
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/42c70809
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/42c70809
Branch: refs/heads/master
Commit: 42c7080941eefeddd808ed6c87e7e90277ff61e1
Parents: d64903f b98c24e
Author: jbertram <jb...@apache.com>
Authored: Fri Sep 23 10:42:30 2016 -0500
Committer: jbertram <jb...@apache.com>
Committed: Fri Sep 23 10:42:30 2016 -0500
----------------------------------------------------------------------
.../impl/MessageCounterManagerImpl.java | 73 +++++---------------
.../management/impl/ManagementServiceImpl.java | 2 +-
2 files changed, 18 insertions(+), 57 deletions(-)
----------------------------------------------------------------------