Class DefaultCronJobService
- java.lang.Object
-
- de.hybris.platform.servicelayer.internal.service.AbstractService
-
- de.hybris.platform.servicelayer.internal.service.AbstractBusinessService
-
- de.hybris.platform.servicelayer.cronjob.impl.DefaultCronJobService
-
- All Implemented Interfaces:
CronJobService
,java.io.Serializable
,org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanNameAware
,org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
DefaultImportCockpitCronJobService
public class DefaultCronJobService extends AbstractBusinessService implements CronJobService
Default implementation of the cronjob service.- Since:
- 4.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class de.hybris.platform.servicelayer.internal.service.AbstractService
AbstractService.SerializableDTO
-
-
Field Summary
Fields Modifier and Type Field Description protected static int
DEFAULT_LOG_BUNCH
Default amount ofJobLogModel
entries.-
Fields inherited from class de.hybris.platform.servicelayer.internal.service.AbstractBusinessService
modelService, sessionService, txManager
-
Fields inherited from class de.hybris.platform.servicelayer.internal.service.AbstractService
tenant
-
-
Constructor Summary
Constructors Constructor Description DefaultCronJobService()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected boolean
canRunOnThisNode(CronJobModel cronJob)
CronJobModel
getCronJob(java.lang.String code)
Gets the cronjob identified unique by given code.protected java.lang.String
getCronJobExpression(CronJobModel cronJob)
<C extends CronJobModel,J extends JobModel>
CronJobFactory<C,J>getCronJobFactory(ServicelayerJobModel slayerJobModel)
JobModel
getJob(java.lang.String code)
Gets the job identified unique by given code.protected Converter<java.util.List<JobLogModel>,java.lang.String>
getJobLogConverter()
java.lang.String
getLogsAsText(CronJobModel cronJobModel)
Returns text representation of top 500CronJobModel.getLogs()
entries for a givenCronJobModel
, as concatenated and decorated content of itsJobLogModel.getMessage()
.java.lang.String
getLogsAsText(CronJobModel cronJobModel, int count)
Returns text representation of top givencount
CronJobModel.getLogs()
entries for a givenCronJobModel
, as concatenated and decorated content of itsJobLogModel.getMessage()
.JobPerformable<? extends CronJobModel>
getPerformable(ServicelayerJobModel slayerJobModel)
java.util.List<CronJobModel>
getRunningOrRestartedCronJobs()
Returns list ofCronJobModel
instances running on the platform regardless the cluster node.boolean
isAbortable(CronJobModel cronJob)
Checks if the cronjob model is abortable.boolean
isError(CronJobModel cronJob)
Checks whether the cronjob was executed not successfully.boolean
isFinished(CronJobModel cronJob)
Checks whether the cronjob has finished execution and is not running or paused anymore.boolean
isPaused(CronJobModel cronJob)
Checks whether the cronjob is paused.boolean
isPerformable(CronJobModel cronJob)
Checks if the cronjob model is performable.boolean
isRunning(CronJobModel cronJob)
Checks whether the cronjob has not finished or paused execution yet and is still running regardless if has it been restarted or not.boolean
isSuccessful(CronJobModel cronJob)
Checks whether the cronjob was executed successfully.void
performCronJob(CronJobModel cronJob)
Performs givenCronjob
by starting itsJob
on the cluster node.void
performCronJob(CronJobModel cronJob, boolean synchronous)
Performs givenCronjob
by starting itsJob
.void
requestAbortCronJob(CronJobModel cronJob)
void
setClusterService(ClusterService clusterService)
void
setCronJobCodeGenerator(PersistentKeyGenerator cronJobCodeGenerator)
void
setCronJobDao(CronJobDao cronJobDao)
void
setJobDao(JobDao jobDao)
void
setJobLogConverter(Converter jobLogConverter)
void
setJobLogDao(JobLogDao jobLogDao)
void
setRunCronJobMessageBuilder(RunCronJobMessageCreatorAndSender runCronJobMessageBuilder)
Deprecated.since 6.1.0void
setTaskService(TaskService taskService)
void
setTenantService(TenantService tenantService)
Deprecated.since 6.1.0protected void
startOnDifferentNodeViaTask(CronJobModel cronJob)
-
Methods inherited from class de.hybris.platform.servicelayer.internal.service.AbstractBusinessService
getModelService, getSessionService, getTxManager, setModelService, setSessionService, setTxManager
-
Methods inherited from class de.hybris.platform.servicelayer.internal.service.AbstractService
afterPropertiesSet, getCurrentTenant, setBeanName, setCurrentTenant, writeReplace
-
-
-
-
Field Detail
-
DEFAULT_LOG_BUNCH
protected static final int DEFAULT_LOG_BUNCH
Default amount ofJobLogModel
entries.- See Also:
- Constant Field Values
-
-
Method Detail
-
performCronJob
public void performCronJob(CronJobModel cronJob, boolean synchronous)
Description copied from interface:CronJobService
Performs givenCronjob
by starting itsJob
. If synchronous istrue
, theJob
will be performed synchronous, which means that this method will return the control to its caller as recently as thisJob
is performed. Synchronous execution is especially useful for short Jobs or testing purpose (JUnit tests for example). If synchronous isfalse
, theJob
will be performed asynchronous by executing theJob
in a separateThread
. This method ignores a nodeIdCronJobModel.getNodeID()
and does not start aJob
on the cluster node.- Specified by:
performCronJob
in interfaceCronJobService
- Parameters:
cronJob
- which will be usedsynchronous
-true
if theJob
should be performed synchronously,false
if theJob
should be performed asynchronously
-
performCronJob
public void performCronJob(CronJobModel cronJob)
Description copied from interface:CronJobService
Performs givenCronjob
by starting itsJob
on the cluster node. The node is given byJobModel.getNodeID()
, theJob
will be performed asynchronous, which means that this method will return the control to its caller as recently as thisJob
is performed. Call for aCronJobModel
with nodeIdCronJobModel.getNodeID()
equal to current nodeIdClusterService.getClusterId()
is the same as callCronJobService.performCronJob(CronJobModel, boolean)
withsynchronous
equal false- Specified by:
performCronJob
in interfaceCronJobService
- Parameters:
cronJob
- which will be used
-
canRunOnThisNode
protected boolean canRunOnThisNode(CronJobModel cronJob)
-
startOnDifferentNodeViaTask
protected void startOnDifferentNodeViaTask(CronJobModel cronJob)
-
getCronJobExpression
protected java.lang.String getCronJobExpression(CronJobModel cronJob)
-
requestAbortCronJob
public void requestAbortCronJob(CronJobModel cronJob)
Sets theCronJobModel.REQUESTABORT
to true for non runningCronJobModel
, abortableCronJobModel
. Above action is performed ifCronJobModel.getStatus()
is in aCronJobStatus.RUNNING
orCronJobStatus.RUNNINGRESTART
.- Specified by:
requestAbortCronJob
in interfaceCronJobService
- Parameters:
cronJob
- which will be used- Throws:
java.lang.IllegalStateException
- in case givenCronJobModel
is not an abortable.
-
getCronJob
public CronJobModel getCronJob(java.lang.String code)
Description copied from interface:CronJobService
Gets the cronjob identified unique by given code.- Specified by:
getCronJob
in interfaceCronJobService
- Parameters:
code
- code for which a cronjob is needed- Returns:
- cronjob identified unique by given code
-
getJob
public JobModel getJob(java.lang.String code)
Description copied from interface:CronJobService
Gets the job identified unique by given code.- Specified by:
getJob
in interfaceCronJobService
- Parameters:
code
- code for which a job is needed- Returns:
- job identified unique by given code
-
isFinished
public boolean isFinished(CronJobModel cronJob)
Description copied from interface:CronJobService
Checks whether the cronjob has finished execution and is not running or paused anymore.- Specified by:
isFinished
in interfaceCronJobService
- Parameters:
cronJob
- cronjob to check for- Returns:
- true if cronjob has finished execution
-
isPaused
public boolean isPaused(CronJobModel cronJob)
Description copied from interface:CronJobService
Checks whether the cronjob is paused.- Specified by:
isPaused
in interfaceCronJobService
- Parameters:
cronJob
- cronjob to check for- Returns:
- true if cronjob is paused
-
isRunning
public boolean isRunning(CronJobModel cronJob)
Description copied from interface:CronJobService
Checks whether the cronjob has not finished or paused execution yet and is still running regardless if has it been restarted or not.- Specified by:
isRunning
in interfaceCronJobService
- Parameters:
cronJob
- cronjob to check for- Returns:
- true if cronjob is still running
-
isSuccessful
public boolean isSuccessful(CronJobModel cronJob)
Description copied from interface:CronJobService
Checks whether the cronjob was executed successfully. Can only be used if cronjob has finished execution (CronJobService.isFinished(CronJobModel)
returns true).- Specified by:
isSuccessful
in interfaceCronJobService
- Parameters:
cronJob
- cronjob to check for- Returns:
- true if cronjob has finished successfully
-
isError
public boolean isError(CronJobModel cronJob)
Description copied from interface:CronJobService
Checks whether the cronjob was executed not successfully. Can only be used if cronjob has finished execution (CronJobService.isFinished(CronJobModel)
returns true).- Specified by:
isError
in interfaceCronJobService
- Parameters:
cronJob
- cronjob to check for- Returns:
- true if cronjob has finished not successfully
-
getRunningOrRestartedCronJobs
public java.util.List<CronJobModel> getRunningOrRestartedCronJobs()
Description copied from interface:CronJobService
Returns list ofCronJobModel
instances running on the platform regardless the cluster node.- Specified by:
getRunningOrRestartedCronJobs
in interfaceCronJobService
-
isPerformable
public boolean isPerformable(CronJobModel cronJob)
Description copied from interface:CronJobService
Checks if the cronjob model is performable.- Specified by:
isPerformable
in interfaceCronJobService
- Parameters:
cronJob
- which will be used
-
isAbortable
public boolean isAbortable(CronJobModel cronJob)
Description copied from interface:CronJobService
Checks if the cronjob model is abortable.- Specified by:
isAbortable
in interfaceCronJobService
- Parameters:
cronJob
- which will be used
-
getPerformable
public JobPerformable<? extends CronJobModel> getPerformable(ServicelayerJobModel slayerJobModel)
Description copied from interface:CronJobService
- Specified by:
getPerformable
in interfaceCronJobService
-
getCronJobFactory
public <C extends CronJobModel,J extends JobModel> CronJobFactory<C,J> getCronJobFactory(ServicelayerJobModel slayerJobModel)
Description copied from interface:CronJobService
- Specified by:
getCronJobFactory
in interfaceCronJobService
-
getLogsAsText
public java.lang.String getLogsAsText(CronJobModel cronJobModel)
Description copied from interface:CronJobService
Returns text representation of top 500CronJobModel.getLogs()
entries for a givenCronJobModel
, as concatenated and decorated content of itsJobLogModel.getMessage()
.- Specified by:
getLogsAsText
in interfaceCronJobService
-
getLogsAsText
public java.lang.String getLogsAsText(CronJobModel cronJobModel, int count)
Description copied from interface:CronJobService
Returns text representation of top givencount
CronJobModel.getLogs()
entries for a givenCronJobModel
, as concatenated and decorated content of itsJobLogModel.getMessage()
.- Specified by:
getLogsAsText
in interfaceCronJobService
-
setRunCronJobMessageBuilder
@Deprecated public void setRunCronJobMessageBuilder(RunCronJobMessageCreatorAndSender runCronJobMessageBuilder)
Deprecated.since 6.1.0
-
setTenantService
@Deprecated public void setTenantService(TenantService tenantService)
Deprecated.since 6.1.0
-
setClusterService
public void setClusterService(ClusterService clusterService)
-
setJobLogConverter
public void setJobLogConverter(Converter jobLogConverter)
-
getJobLogConverter
protected Converter<java.util.List<JobLogModel>,java.lang.String> getJobLogConverter()
-
setCronJobDao
public void setCronJobDao(CronJobDao cronJobDao)
-
setJobDao
public void setJobDao(JobDao jobDao)
-
setJobLogDao
public void setJobLogDao(JobLogDao jobLogDao)
-
setCronJobCodeGenerator
public void setCronJobCodeGenerator(PersistentKeyGenerator cronJobCodeGenerator)
-
setTaskService
public void setTaskService(TaskService taskService)
-
-