package org.radargun.stages.cache.background; import org.radargun.DistStageAck; import org.radargun.config.Property; import org.radargun.config.Stage; import org.radargun.stages.AbstractDistStage; import org.radargun.utils.TimeConverter; /** * @author Radim Vansa <rvansa@redhat.com> */ @Stage(doc = "Starts collection of statistics from background threads and cache size.") public class BackgroundStatisticsStartStage extends AbstractDistStage { @Property(doc = "Name of the background operations. Default is '" + BackgroundOpsManager.DEFAULT + "'.") protected String name = BackgroundOpsManager.DEFAULT; @Property(converter = TimeConverter.class, doc = "Delay between statistics snapshots. Default is 5 seconds.") private long statsIterationDuration = 5000; @Override public DistStageAck executeOnSlave() { try { BackgroundStatisticsManager instance = BackgroundStatisticsManager.getOrCreateInstance(slaveState, name, statsIterationDuration); log.info("Starting statistics threads"); instance.startStats(); return successfulResponse(); } catch (Exception e) { return errorResponse("Error while starting background stats", e); } } }