Package de.hybris.platform.task.impl
Class DefaultTaskService
- java.lang.Object
-
- de.hybris.platform.task.impl.DefaultTaskService
-
- All Implemented Interfaces:
TaskService
- Direct Known Subclasses:
DefaultTaskServiceNodeGroupsIntegrationTest.TestTaskService,TriggerTaskRunnerRetriesHandlingTest.TestTaskService
public class DefaultTaskService extends java.lang.Object implements TaskService
Default implementation of theTaskServiceinterface.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDefaultTaskService.PoolingQueueSizeGauge
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_POLLING_INTERVALstatic intDEFAULT_SHUTDOWN_WAITstatic intDEFAULT_WORKER_MAXstatic java.lang.StringPROCESSING_HITS_METRICstatic java.lang.StringPROCESSING_MISSES_METRICstatic java.lang.StringPROCESSING_TIME_METRICstatic java.lang.StringQUEUE_SIZE_METRIC-
Fields inherited from interface de.hybris.platform.task.TaskService
BEAN_ID
-
-
Constructor Summary
Constructors Constructor Description DefaultTaskService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancheckSystemOK()protected voidcheckTask(TaskModel toBeScheduled)protected voidcheckTaskConditions(TaskModel toBeScheduled, TaskConditionModel cond)voiddestroy()Shut down this componentTaskEnginegetEngine()protected TaskExecutionStrategygetExecutionStrategy(TaskRunner<? extends TaskModel> runner)protected TaskRunnergetRunner(Task task)protected TaskRunnergetRunner(java.lang.String runnerBean)protected TaskDAOgetTaskDao()protected TaskEngineParametersgetTaskProviderParameters()protected TenantgetTenant()voidinit()Starts up this componentprotected booleanisAllowedToStart()protected booleanisAllowedToStart(int clusterId)protected booleanisEnabledInConfig()Read configuration setting for task engine from the configuration.booleanisRunning()protected voidmarkTaskFailed(Task task)protected voidpoll()protected voidprocess(TasksProvider.VersionPK versionPK)protected voidprocessCondition(TaskCondition cond)protected voidprocessInTenant(TasksProvider.VersionPK versionPK)protected voidprocessTask(Task task, TasksProvider.VersionPK versionPK)protected java.util.Set<java.lang.Integer>readExcludedNodesFromConfig()protected intreadMaxWorkersFromConfig()protected intreadPollingIntervalFromConfig()protected intreadShutdownWaitFromConfig()protected intreadWorkersIdleFromConfig()protected <T> voidrefreshCurrentSessionWithRetry(java.util.function.Supplier<java.lang.Void> failingMethodSupplier)voidrepoll(java.lang.Integer nodeId, java.lang.String nodeGroupId)protected voidscheduleRetry(Task task, java.util.Date nextExecution, int turn)protected booleanscheduleRetryIfAllowed(Task task, RetryLaterException e)voidscheduleTask(TaskModel task)Schedule a task.voidsetEventService(EventService eventService)voidsetMetricRegistry(com.codahale.metrics.MetricRegistry metricRegistry)voidsetModelService(ModelService modelService)voidsetScheduleAndTriggerStrategy(ScheduleAndTriggerStrategy scheduleAndTriggerStrategy)voidsetTaskDao(TaskDAO dao)voidsetTaskEngineRetryTemplate(org.springframework.retry.support.RetryTemplate taskEngineRetryTemplate)voidsetTaskExecutionStrategies(java.util.Collection<? extends TaskExecutionStrategy> taskExecutionStrategies)voidsetTasksProvider(TasksProvider tasksProvider)booleantriggerEvent(TaskEvent event)Trigger event on task module.voidtriggerEvent(java.lang.String uniqueId)Trigger an event on task module.voidtriggerEvent(java.lang.String uniqueId, java.util.Date expirationDate)Trigger an event on task module.voidtriggerRepoll(java.lang.Integer nodeId, java.lang.String nodeGroupId)Triggers re-poll at the specified cluster node.protected voidtriggerRepollAfterSchedule(java.util.Date scheduledDate, java.lang.Integer nodeId, java.lang.String nodeGroupId)protected voidwaitAndRunExclusiveAction(java.lang.String info, java.lang.Runnable action)
-
-
-
Field Detail
-
DEFAULT_WORKER_MAX
public static final int DEFAULT_WORKER_MAX
- See Also:
- Constant Field Values
-
DEFAULT_POLLING_INTERVAL
public static final int DEFAULT_POLLING_INTERVAL
- See Also:
- Constant Field Values
-
DEFAULT_SHUTDOWN_WAIT
public static final int DEFAULT_SHUTDOWN_WAIT
- See Also:
- Constant Field Values
-
QUEUE_SIZE_METRIC
public static final java.lang.String QUEUE_SIZE_METRIC
-
PROCESSING_TIME_METRIC
public static final java.lang.String PROCESSING_TIME_METRIC
-
PROCESSING_HITS_METRIC
public static final java.lang.String PROCESSING_HITS_METRIC
-
PROCESSING_MISSES_METRIC
public static final java.lang.String PROCESSING_MISSES_METRIC
-
-
Method Detail
-
setModelService
public void setModelService(ModelService modelService)
-
setEventService
public void setEventService(EventService eventService)
-
setScheduleAndTriggerStrategy
public void setScheduleAndTriggerStrategy(ScheduleAndTriggerStrategy scheduleAndTriggerStrategy)
-
setMetricRegistry
public void setMetricRegistry(com.codahale.metrics.MetricRegistry metricRegistry)
-
setTasksProvider
public void setTasksProvider(TasksProvider tasksProvider)
-
setTaskEngineRetryTemplate
public void setTaskEngineRetryTemplate(org.springframework.retry.support.RetryTemplate taskEngineRetryTemplate)
-
getEngine
public TaskEngine getEngine()
- Specified by:
getEnginein interfaceTaskService- Returns:
- the task engine.
-
isRunning
public boolean isRunning()
-
triggerRepoll
public void triggerRepoll(java.lang.Integer nodeId, java.lang.String nodeGroupId)Triggers re-poll at the specified cluster node.- Parameters:
nodeId- the cluster node id
-
triggerEvent
public void triggerEvent(java.lang.String uniqueId)
Description copied from interface:TaskServiceTrigger an event on task module.- Specified by:
triggerEventin interfaceTaskService- Parameters:
uniqueId- unique id of event
-
triggerEvent
public void triggerEvent(java.lang.String uniqueId, java.util.Date expirationDate)Description copied from interface:TaskServiceTrigger an event on task module.- Specified by:
triggerEventin interfaceTaskService- Parameters:
uniqueId- unique id of eventexpirationDate- expiration date - when reached the task condition created after event send and before
-
triggerEvent
public boolean triggerEvent(TaskEvent event)
Description copied from interface:TaskServiceTrigger event on task module.- Specified by:
triggerEventin interfaceTaskService- Parameters:
event- event to be triggered- Returns:
trueif operation succeeded orfalseif event has been already triggered
-
scheduleTask
public void scheduleTask(TaskModel task)
Description copied from interface:TaskServiceSchedule a task.- Specified by:
scheduleTaskin interfaceTaskService- Parameters:
task- task to schedule.
-
triggerRepollAfterSchedule
protected void triggerRepollAfterSchedule(java.util.Date scheduledDate, java.lang.Integer nodeId, java.lang.String nodeGroupId)
-
checkTask
protected void checkTask(TaskModel toBeScheduled)
-
checkTaskConditions
protected void checkTaskConditions(TaskModel toBeScheduled, TaskConditionModel cond)
-
repoll
public void repoll(java.lang.Integer nodeId, java.lang.String nodeGroupId)
-
isAllowedToStart
protected boolean isAllowedToStart()
-
isAllowedToStart
protected boolean isAllowedToStart(int clusterId)
-
isEnabledInConfig
protected boolean isEnabledInConfig()
Read configuration setting for task engine from the configuration. This method considers bothTaskConstants.Params.TASK_PROCESSING_ENABLEDandTaskConstants.Params.TASK_PROCESSING_ENABLED_LEGACY. The following applies:- If only the old parameter is set, it is used.
- If only the new parameter is set, it is used.
- If both the old and new parameters are set, the new parameter is used and a warning is written to the log.
-
checkSystemOK
protected boolean checkSystemOK()
-
refreshCurrentSessionWithRetry
protected <T> void refreshCurrentSessionWithRetry(java.util.function.Supplier<java.lang.Void> failingMethodSupplier)
-
init
public void init()
Starts up this component
-
getTaskDao
protected TaskDAO getTaskDao()
-
setTaskDao
public void setTaskDao(TaskDAO dao)
-
readPollingIntervalFromConfig
protected int readPollingIntervalFromConfig()
-
readMaxWorkersFromConfig
protected int readMaxWorkersFromConfig()
-
readWorkersIdleFromConfig
protected int readWorkersIdleFromConfig()
-
readExcludedNodesFromConfig
protected java.util.Set<java.lang.Integer> readExcludedNodesFromConfig()
-
readShutdownWaitFromConfig
protected int readShutdownWaitFromConfig()
-
destroy
public void destroy()
Shut down this component
-
waitAndRunExclusiveAction
protected void waitAndRunExclusiveAction(java.lang.String info, java.lang.Runnable action)
-
poll
protected void poll()
-
getTaskProviderParameters
protected TaskEngineParameters getTaskProviderParameters()
-
processInTenant
protected void processInTenant(TasksProvider.VersionPK versionPK)
-
process
protected void process(TasksProvider.VersionPK versionPK)
-
processCondition
protected void processCondition(TaskCondition cond)
-
processTask
protected void processTask(Task task, TasksProvider.VersionPK versionPK)
-
scheduleRetryIfAllowed
protected boolean scheduleRetryIfAllowed(Task task, RetryLaterException e)
-
scheduleRetry
protected void scheduleRetry(Task task, java.util.Date nextExecution, int turn)
-
markTaskFailed
protected void markTaskFailed(Task task)
-
getRunner
protected TaskRunner getRunner(Task task)
-
getRunner
protected TaskRunner getRunner(java.lang.String runnerBean) throws java.lang.IllegalStateException
- Throws:
java.lang.IllegalStateException
-
getTenant
protected Tenant getTenant()
-
getExecutionStrategy
protected TaskExecutionStrategy getExecutionStrategy(TaskRunner<? extends TaskModel> runner)
-
setTaskExecutionStrategies
@Autowired public void setTaskExecutionStrategies(java.util.Collection<? extends TaskExecutionStrategy> taskExecutionStrategies)
-
-