当前位置: 首页 > 知识库问答 >
问题:

spring batch admin如何停止正在运行的作业?

郎正平
2023-03-14
update batch_job_execution set status="STOPPED" where job_ins
tance_id=19;

共有1个答案

舒博雅
2023-03-14

您混淆了批处理状态和退出状态。您在做什么SQL将状态更改为停止

当作业正在运行时,可以从代码中停止作业。在每个步骤迭代中,检查它们的状态,如果停止其集合,则发送该步骤停止进行中。不管怎样,你的所作所为并不高雅。在常见批处理模式中解释了正确的方法-->11.2出于业务原因手动停止作业

public class FooProcessor implements ItemProcessor<FooIn,FooOut>{
   public FooOut process(FooIn foo) throws Exception {
        if (sendToStop(item)) {
          throw new MyStopException("I need to Stop: " + item);
         }
        //do my stuff    
        return new FooOut(foo);
    }
}

停止块步骤的另一个简单方法是在读取器中返回null。这告诉我们没有更多的元素来迭代阅读器

  public T read() throws Exception {
            T item = delegate.read();
            if (ifNeedStop(item)) {
                return null; // end the step here
            }
            return item;
        }
 类似资料:
  • 问题内容: 我正在尝试制作一个简单的计时器,该计时器在指定的秒数后发出提示音。我设法使其正常工作,但是TimerTask在蜂鸣声后继续运行。现在我停止执行吗?这是我的代码: 问题答案: 您需要通过调用以下方法来取消计时器 这将取消任务,因此可以执行以下操作:

  • 我正在创建一个BLE应用程序,需要连续启动和停止扫描预定义的时间间隔。我实现它的方式是使用两个Runnable,它们相互调用,如下所示: 我正在尝试开始连续扫描并在单击按钮时暂停。开始按钮可以启动过程,但我无法停止扫描。 如果在停止间隔期间按下停止按钮,扫描将停止。但是,如果在扫描可运行状态下按stop按钮,则会删除stopScan可运行状态下的回调,同时保持扫描可运行状态持续运行。我需要的是两个

  • 问题内容: 我从Linux Shell 连接到。我时不时地运行一个太大的查询。它可以打印,我已经知道这不是我的意思。我想停止查询。 击中(几次)会完全杀死并把我带回外壳,因此我必须重新连接。 是否可以在不杀死自己的情况下停止查询? 问题答案:

  • 问题内容: 如何以编程方式停止正在运行的mysql查询? 我面临的问题是查询是使用用户提供的数据构造的,并且偶尔可能需要很长时间才能执行(大型表15-3000万行)。我想为用户提供一个cancel- option,但不知道如何停止当前正在执行的mysql-query。 该应用程序是Java applet- servlet:用户在applet中指定条件,该条件将传递给servlet,在servlet

  • 问题内容: 我有一个Jenkinsfile或Jenkins管道,该管道创建一个新图像并从该图像中启动一个容器。第一次运作良好。但是在随后的运行中,我希望停止并删除先前的容器。我的Jenkinsfile如下: “ docker stop container”阶段失败。那是因为我不知道获取容器并停止它的正确API。谢谢。 问题答案: 就像在此Jenkinsfile中一样,您可以改用命令。 这样,您可以

  • 问题内容: 我有一些任务是在Java Quartz Jobs的帮助下执行的,但是我需要在某些情况下在代码中停止某些任务。我读到这可以通过InterruptableJob完成。但是我不知道我应该怎么做? 问题答案: 您需要将您的工作写成InterruptableJob的实现。要中断此作业,您需要Scheduler的句柄,然后调用 请查看上述类的@javadoc,石英发行版也包含此示例(example