我面临的问题是,有时可能有大量的数据,这可能需要工作执行超过10分钟。在这种情况下,我希望检测是否有任何作业已经在运行?如果没有,那么只有我会重新运行一个新的作业实例。如果该作业已经在运行,那么我将跳过“新作业实例调用”。我写了一些代码,如下所示。
Job job = (Job) context.getBean("job");
JobExplorer explorer = (JobExplorer) context.getBean("jobExplorer");
// Fetching all job instances.
List<JobInstance> jobInstances = explorer.findJobInstancesByJobName(
job.getName(), 0, explorer.getJobInstanceCount(job.getName()));
// Fetching the last job instance.
JobInstance lastJobInstance = jobInstances.get(0);
//Obtain all executions for last job instance.
List<JobExecution> executions = explorer.getJobExecutions(lastJobInstance);
// fetching last job execution
JobExecution lastJobExecution = executions.get(0);
System.out.println("Is my last Job running? \nAns:"+lastJobExecution.isRunning());
一些事情,这段代码是检查以前所有正在运行的作业。我所假设的是,如果我启动服务器,那么在服务器启动之前不会有其他作业在运行,如果我在检查之前的作业是否在运行之后运行一个作业,我假设在我的调度程序代码中不会调用其他作业。
我想知道这是正确的做法吗?我的意思是要确保您在同一时间为同一作业只运行一个作业实例,并且在完成对同一作业的任何先前运行之后也是如此。
p.s作业实例、jObExplorer和jobLauncher被注入到调度器中。这只是一个类似的代码,因此使用上下文获取bean。
谢谢你的阅读。
如果您使用的是调度程序,那么您可能应该有一个JobLauncherDetails类,可以在其中添加参数,如
JobParameters jobParameters = getJobParametersFromJobMap(jobDataMap);
其中一个paramter可以是您的最后一个运行时,向该映射添加一个dateTime param,并使用JobCompletionReader的实例
jobCompletionReader.getLastCompleteDate()
与10分钟前比较,看看你是否完成了“10分钟前的工作”。像这样的东西应该对你有用。
我有一个优化代码运行在sagemaker。我想每1小时运行一次代码。我怎么能在sagemaker安排跑步?。我不想调用模型endpoint,但我想在每1小时运行整个代码。
我有一个系统,其中REST API(Flask)使用spark-sumbit向正在运行的PySpark发送作业。 出于各种原因,我需要spark同时运行所有任务(即我需要设置执行器的数量=运行时的任务数量)。 这可能通过一项工作来实现吗?
在VS Code中,我必须先运行构建任务,然后开始调试,而在CLion中,我只需单击调试,然后在必要时自动构建并开始调试。在VS Code中也有自动化的方法吗?
我有一大堆Scalaz任务。创建方式如下: 我希望这些任务并行运行。以随机顺序打印数字,不要花5秒钟(每个任务有50个任务和100毫升睡眠)。 但是,很明显,每个任务需要100毫秒,所有任务都需要5秒钟,并且创建的列表是有序的。 如何并行运行它们?任务在哪里运行线程?
问题内容: 我要延迟设置某项倒计时计时器的时间,该计时器将在一定时间后“做某事”。 我希望我的程序的其余部分在等待时继续运行,所以我尝试制作自己的程序,其中包含一分钟的延迟: 尽管这种方法行之有效,但似乎应该有一种更好的方法。 我不需要任何复杂的东西。我只想在一定时间后做一件事情,而让程序的其余部分仍然运行。 我应该如何安排一次任务来“做某事”? 问题答案: 虽然过去曾经是安排未来任务的好方法,但
我在build.gradle中创建了一个新的gradle任务: 哪个应该运行rerun.sh: 我使用IntelliJ作为IDE。如何运行此任务? 我尝试在zshell控制台中运行并收到此错误: gradle调用CL zsh:找不到命令:gradle 但是在 IDE 中,我一直使用 gradle,因此必须安装它。 我怎么才能解决这个问题?我的写作还好吗?