我认为我们可以通过hmc停止 cronjob 。 如果除了有任何方法,请回答
答案 0 :(得分:2)
您可以在更全局的问题中找到答案,如何在线程中停止无限循环。 (见:https://stackoverflow.com/a/2358169/1140748)
您的工作是在专用线程中启动的。
您必须停止它的唯一方法是使用可以从外部对象设置的标志。
在JobPerformable
(扩展AbstractJobPerformable
)中,您必须经常设置此代码块以检查是否应停止cron:
if (clearAbortRequestedIfNeeded(cronJobModel)) {
LOG.error(String.format(MSG_INFO_JOB_ABORTED, cronJobModel.getCode()));
return new PerformResult(CronJobResult.UNKNOWN, CronJobStatus.ABORTED);
}
JobPerformable
必须“可以中止”。要说这个代码块放在JobPerformable实现中:
@Override
public boolean isAbortable()
{
return true;
}
答案 1 :(得分:1)
你总是可以使用(Abort Cronjob按钮)从HMC中止你的Cronjob,但是你的工作应该是一个可以挽回的工作,如果不是你将无法阻止它。
在How to Write an Abortable Job上查看本教程。
答案 2 :(得分:0)
实际上有几种方法可以阻止Hybris中的cronjob。
第一个和最佳方法是从HMC
(现在为Backoffice Administration Cockpit
)中止它。为此,cronjob必须是abortable
。更多关于可流产的cronjobs here。
您也可以转到HAC
>从Monitoring
中止cronjobs。 Cron Jobs
。这或多或少与第一种方法相同。
当前两个不可用时,还有一些方法可以中止/停止/完成cronjob:
答案 3 :(得分:0)
在hac
下面的impex下面运行update CronJob[batchmode=true];itemtype(code)[unique=true];active;CronJob;false