如何终止正在运行的Cron Job?

2020-08-19 08:20发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

这里我有一个问题:-

让我们假设3个Cron作业的运行时间超过一天,但是我想中止所有这3个Cron作业,如果该作业在上午8点之前尚未完成。 所以我写了一个Cron作业,该作业可以获取所有处于运行状态的cron作业并中止它们。

我完成了,

while(cronjobsname.hasNext()){

 最终CronJobModel runningjobname = cronJobService
                  .getCronJob(cronjobsname.next());
          如果(cronJobService.isRunning(runningjobname)){
          LOG.info(runningjobname);
          如果(LOG.isDebugEnabled()){
              LOG.debug("强制作业:"
                      + runningjobname.getCode()
                      +"由于未在上午8点或之前完成而中止");
          }

          cronJobService.requestAbortCronJob(runningjobname);
          }
      }

  

此代码运行正常,但Cron Jobs没有异常终止。

我错过了什么吗?

谢谢。

我希望您能迅速做出答复。

关于安库尔

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

这里我有一个问题:-

让我们假设3个Cron作业的运行时间超过一天,但是我想中止所有这3个Cron作业,如果该作业在上午8点之前尚未完成。 所以我写了一个Cron作业,该作业可以获取所有处于运行状态的cron作业并中止它们。

我完成了,

while(cronjobsname.hasNext()){

 最终CronJobModel runningjobname = cronJobService
                  .getCronJob(cronjobsname.next());
          如果(cronJobService.isRunning(runningjobname)){
          LOG.info(runningjobname);
          如果(LOG.isDebugEnabled()){
              LOG.debug("强制作业:"
                      + runningjobname.getCode()
                      +"由于未在上午8点或之前完成而中止");
          }

          cronJobService.requestAbortCronJob(runningjobname);
          }
      }

  

此代码运行正常,但Cron Jobs没有异常终止。

我错过了什么吗?

谢谢。

我希望您能迅速做出答复。

关于安库尔

付费偷看设置
发送
8条回答
CJones
1楼-- · 2020-08-19 08:58

嗨,

要中止cronjob,作业必须是可中止的。 因此,如果该作业不可中止,您将无法中止。 看一下本教程。

https://wiki.hybris .com/display/release5/How + to + Write + an + Abortable + Job +-+ Tutorial

槿木_熙
2楼-- · 2020-08-19 08:50

Hi Juna,

感谢您的答复。

我如何监视时间是上午8点,现在工作必须中止?

最好的问候,安库尔

灬番茄
3楼-- · 2020-08-19 08:58

嗨 检查此链接

可终止的作业

悻福寶寶
4楼-- · 2020-08-19 08:52

您好,

我做过同样的事情,但工作仍未中止。 看来我需要杀死进程或对象。

问候,安库尔

Violet凡
5楼-- · 2020-08-19 08:49

您好,您可以尝试以下快速步骤,因为默认情况下cronjob不可终止

  1. 覆盖cronjob可执行类中的isAbortable()方法并返回true或在springs.xml文件中添加属性cronjob bean

  2. 现在调用方法cronJobService.requestAbortCronJob(runningjobname);

希望它会有所帮助。

天桥码农
6楼-- · 2020-08-19 09:15

嗨安库尔,

您是否找到上述问题的任何解决方案。即使我有类似的要求。

一周热门 更多>