草庐IT

job-scheduling

全部标签

java - 通过引用 bean 名称在 @Scheduled 注释中使用 @ConfigurationProperties

我正在使用@ConfigurationProperties在Springboot中配置后台任务的延迟,我正尝试在另一个上使用来自@Scheduled注释的这个值零件。但是,为了使其正常工作,我必须使用Spring为bean提供的全名。配置属性类如下:@ConfigurationProperties("some")classSomeProperties{privateintmillis;//thepropertyissome.millispublicintgetMillis(){returnmillis;}publicvoidsetMillis(intmillis){this.milli

java - 为什么 spring task scheduler 等待上一个任务完成?

我有以下任务调度程序设置:任务只打印一行并hibernate10秒。使用此设置,我的期望是任务将每5秒运行一次,而不管之前的任务是否已完成执行(即停止hibernate)。但事实并非如此,该任务每15秒运行一次(sleep时间,然后在下一次cron被命中时)。我如何配置它,使任务每5秒运行一次,而不管上一次执行是否完成? 最佳答案 在运行方法中放置@Async注释并查看@Asyncpublicvoidrun{}或者你可以试试这个然后是你的类(class)packagefoo.bar;publicclassTask{publicvoi

java - 在自己的线程中运行每个 Spring Scheduler

我有多个带有@Scheduled注释的组件,我看到Spring一次只启动一个组件,即使它们被安排在同一时间运行也是如此。我的用例如下。我希望每个@Scheduled注释在其自己的线程中运行,但每个线程只运行一次。给定这个带有两个调度程序的伪代码:@Scheduled(cron="0*****")//runeveryminutepublicvoidmethodA(){log.info("RunningmethodA");executeLongRunningJob("FinishedmethodA");}@Scheduled(cron="0*****")//runeveryminutepu

java - 捕捉 Ctrl+C 信号抛出异常 "Job manager has been shut down"

我正在尝试添加对信号的支持(尤其是对于Ctrl+C)。我的工具是用Java编写的,我想在Ctrl+C被捕获时执行清理。我的主文件是应用程序,有以下和平代码:if(ArgDefinitions.getInstance().hasOption(ArgNames.EXECUTE)){performShutdownHooks();preformRun();}应用程序解析用户的选项并运行正确的方法。因此,当用户使用execute选项并单击Ctrl+C时,我希望程序停止并清理该区域。我添加了performShutdownHooks方法来处理信号,它看起来如下:privatevoidperformS

java - Spring Scheduled Jobs 在不同的池中执行 3 次

我有一个每小时运行一次的Spring@Scheduled作业,但我发现它实际上每小时运行3次。这是显示此问题的日志输出:2013-05-0612:00:27,656[pool-2-thread-1]INFOsrc.jobs.NotifyUsersWhenVideoAvailableJob-EmailssentfromNotifyUsersWhenVideoAvailableJob:12013-05-0612:00:27,750[pool-1-thread-1]INFOsrc.jobs.NotifyUsersWhenVideoAvailableJob-EmailssentfromNoti

java - Spring 批处理 : different job launcher for different jobs

我有2份不同的工作(实际上更多,但为简单起见假设有2份)。每个作业都可以与另一个作​​业并行运行,但同一个作业的每个实例都应该按顺序运行(否则实例会蚕食彼此的资源)。基本上,我希望这些作业中的每一个都有自己的作业实例队列。我想我可以使用两个不同的线程池作业启动器(每个都有1个线程)并将作业启动器与每个作业相关联。有没有一种方法可以在从SpringBatchAdminWebUI启Action业时执行此操作? 最佳答案 有一种方法可以为特定作业指定特定作业启动器,但我发现唯一的方法是使用JobStep。如果您有一个名为“specific

java - Spring 的 @Scheduled cron 作业在预定时间前几毫秒触发

我已经为Spring的@Scheduled设置了每小时的cron表达式,如下所示,其中trend.olap.local.loading.cron.expression是00***?。@Scheduled(cron="${trend.olap.local.loading.cron.expression}")publicvoidloadHoulyDataToLocalOlap(){try{//Tocalculateprevhour;Calendarcal=Calendar.getInstance();cal.add(Calendar.HOUR,-1);Datedate=cal.getTim

java.lang.NoClassDefFoundError : Could not initialize class when launching spark job via spark-submit in scala code 错误

我有一个代码,如下所示objectErrorTest{caseclassAPIResults(status:String,col_1:Long,col_2:Double,...)deffuncA(rows:ArrayBuffer[Row])(implicitdefaultFormats:DefaultFormats):ArrayBuffer[APIResults]={//callsomeAPIanggetresultsandreturnAPIResults...}//MARK:loadpropertiesvalprops=loadProperties()privatedefloadPr

java - quartz 调度器 : Trigger some jobs on every cluster node and some only once per cluster

我在集群环境中使用QuartzScheduler作为Springbean。我有一些用@NotConcurrent注释的作业,它们在每个集群中运行一次(即仅在一个节点中,仅在一个线程中)。现在我需要在集群的每个节点上运行一个作业。我删除了@NotConcurrent注释,但它只在一台机器上的每个线程上运行。它不会在其他节点上触发。我应该用什么来注释作业?示例:Job1NotConcurrentannotatedisscheduledatmidnight=>它每个午夜只在一台机器上触发。Job2注释为午夜安排=>它在每个午夜在每台机器上触发。谢谢。 最佳答案

java - 将自定义作业添加到作业执行器

是否可以(如果可以:如何)将自定义作业添加到camundaBPM中的作业执行器?我的需求是通过Timer或者Loop来执行一个流程相关的Service。我不想直接在BPMN中对此进行建模,因为它实际上并不是流程的一部分。我可以启动仅包含一个异步服务任务的其他任意进程来实现此目的,但我更愿意直接向作业队列添加一个包含SOAP/REST/RMI调用的方法调用,而无需额外的努力。有人试过这个吗? 最佳答案 这是一个高级问题。可以使用内部API创建作业。您需要提供两件事:自定义作业处理程序:publicclassCustomjobHandl