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

如何删除作业并用新作业触发/替换?

潘璞瑜
2023-03-14

我有一个工作,将连续访问一个数据库,并计算一个表中的行数。当数量达到某个阈值时,作业必须停止检查表并触发一些新的作业。现在,我正在尝试使用interruptablejob来执行此操作,但我不确定如何删除第一个作业。即:

(2)当有5行时,Job1将interrupt()

(3)现在Job2需要启动,Job1必须停止运行。如何删除Job1?我知道scheduler.deletejob(),但我不确定何时或何处调用它,因为我不能在类中为job1更改scheduler

此外,我如何触发Job2开始运行在这一点?我已经读过JobChainingJobListener,但是从这里可以看到,我在启动链接作业时也遇到了问题。

共有1个答案

章振
2023-03-14

现在Job2需要启动,Job1必须停止运行。如何删除Job1?我知道scheduler.deletejob(),但我不确定何时何地调用它,因为我不能在类中为Job1更改scheduler

最后那句话其实并不正确。从传递给作业的IJobExecutionContext中,您可以轻松地访问调度程序,然后从调度程序中删除当前作业,并在需要时调度另一个作业。

 类似资料:
  • 问题内容: 我将Groovy脚本作为Jenkins中Pipeline工作的一部分,如下所示: 由于将标记设置为,因此它并行执行多个其他自由式作业。但是,我希望所有作业完成后才能完成呼叫者作业。目前,Pipeline作业会触发所有作业并在几秒钟后自行完成,这不是我想要的,因为我无法跟踪总时间,而且我无法一次取消所有已触发的作业。 当并行完成所有作业时,如何纠正上述脚本以完成管道作业? 我试图将构建作

  • 问题内容: 如何设置Jenkins作业以触发在变量/参数中动态定义的作业? 我的问题的伪代码: 生成操作“触发/调用在其他项目上生成”以及生成后操作“参数化触发器插件”和“生成其他项目”不允许在参数中定义作业名称。 我似乎没有将GroovyAxis插件与Build多重配置项目一起使用。常规代码似乎不在作业构建环境中运行,而是在作业配置保存期间运行。 我了解您可以通过脚本通过其build-start

  • 我通过直接将作业文件夹删除到文件系统中来执行手动清理,现在我发现一个运行中的作业被阻塞,无法中止。 我尝试了这里的答案来迫使它停止,但它不起作用,因为它无法在系统中找到现有的工作。 此外,当我点击正在运行的作业时,会出现404错误: 我是否可以在不重新启动服务器的情况下中止正在运行的作业?

  • 问题内容: 我的hudson CI上有大约100个工作,可以批量删除吗? 问题答案: 恕我直言,最简单的方法是使用脚本。去 通过运行以下命令删除作业: 这样,您就可以轻松使用条件筛选出要删除的作业。 对于牛仔裤 当前版本(2.x): 旧版本:

  • 问题内容: 我想在小型和简单的Web应用程序中使用石英。(Quartz 2.1.6和tomcat 7.0.22)。我想更改触发器cron表达式而无需重新启动应用程序。我把工作放在xml文件中并在 问题:当我更改的内容时,石英胶粘剂文件已更改并重新加载,删除并创建新作业。我在日志文件中看到它。但是此文件的内容很旧(与启动时一样)。 所以我在文件系统中有新版本的,但是quartz需要该文件的旧版本。

  • 我们使用quartz调度器创建一个带有触发器名称和触发器组的触发器,它将在15分钟的间隔被触发。 我们希望在任何时间点手动触发时间表。因此,我们所做的就是获取与我们创建的计划相关联的作业的触发键细节,并尝试使用以下API触发作业。 用上面提到的API激发作业时(即尝试手动激发作业)的Quartz日志: 能不能有人请让我知道我们如何才能使时间表是触发与原来的工作相关联的触发器。