草庐IT

scheduler_cron

全部标签

java - 如何限制由 quartz-scheduler 触发的查询

我将带有Spring的Quartz调度程序作为我的应用程序的一部分,它部署在集群环境中。问题是Quartz不断触发大量查询(每分钟数百次),即使我的作业计划每小时运行一次(作业被正确触发)。有没有办法避免/延迟这些Quartz查询?编辑:添加一些由Quartz触发的查询UPDATEQRTZ_TRIGGERSSETTRIGGER_STATE='ACQUIRED'WHERESCHED_NAME='SW_QUARTZ_SCHEDULER'ANDTRIGGER_NAME='createCronTriggerFactoryBeanForPSDJob'ANDTRIGGER_GROUP='SPRIN

java - 当作业重叠时,spring @scheduled cron 的预期行为是什么?

我有一个每小时运行一次的作业,我正在使用Spring的@scheduledcron来安排它。如果工作需要一个多小时,我从HowtopreventoverlappingschedulesinSpring?了解到在第一个作业运行时,下一个作业不会启动。但这是否意味着它会在第一份工作完成后开始,还是错过了机会?如果我有一个需要10小时的作业,所有错过的cron作业是否会排队,然后在第一个作业在10小时后完成时一个接一个地执行,还是只运行第一个作业?谢谢! 最佳答案 默认情况下,执行是阻塞的和单线程的,这意味着它们不会并发运行。如果您希望作

java - 手动触发一个@Scheduled 方法

我需要以下方面的建议:我有一个@Scheduled服务方法,它有几秒钟的固定延迟,在该方法中它会扫描工作队列并在发现任何工作时处理适当的工作。在同一个服务中,我有一个将工作放入工作队列的方法,我希望这种方法在完成后立即触发队列扫描(因为我确信现在扫描器会有一些工作要做)为了避免在计划开始之前出现延迟(因为这可能是几秒钟,而且时间有点关键)。TaskExecutionandScheduling子系统的“立即触发”功能将是理想的,它也将在手动启动执行后重置fixedDelay(因为我不希望我的手动执行与计划的执行冲突)。注意:队列中的工作可能来自外部源,因此需要进行定期扫描。欢迎任何建议编

java - Java中的Cron Job第六个参数

我是Java的新手。作为我的第一个项目,我将使用cron作业调度程序。我想澄清一下日程安排。我有一个每小时运行一次的代码。CronTriggerct=newCronTrigger("cronTrigger","group2","01/0***?");我已经阅读了有关调度的文档,但我感到困惑在一份文件中,我阅读如下("00***?")第一个0表示秒第二个表示分钟第3小时每月的哪一天哪个月的5号。在一些文件中我读到1st表示分钟2nd-小时等谁能给我解释一下这个(01/0***?)以及它的含义(1/0)?我想每六个小时运行一次作业。如果我这样给出(0*/6***?)它是否会每六个小时运行一

java - 凌晨 3 点的 Spring cron 表达式

我正在使用Java-Spring-Quartz调度程序。我想在凌晨3点之前运行作业,以下是我的cron表达式。003**?谁能告诉我这是正确的吗?它会在24小时下午3点和凌晨3点执行两次吗? 最佳答案 是的,这是正确的,您可以通过this来验证它,Hhour字段需要0-23,因此它将在凌晨3点调用 关于java-凌晨3点的Springcron表达式,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

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 - 你如何每 5 分钟执行一次 cron 作业?

JobDetailjob1=JobBuilder.newJob(FirstJob.class).withIdentity("job1","group1").build();Triggertrigger1=TriggerBuilder.newTrigger().withIdentity("cronTrigger1","group1").withSchedule(CronScheduleBuilder.cronSchedule("*/10****?")).build();Schedulerscheduler1=newStdSchedulerFactory().getScheduler();

java - 在控制台中监控 google app engine cron 作业?

这可能是个愚蠢的问题,但是,我就是找不到cron作业面板,我有一个java应用程序,我需要每天刷新数据,所以我在WEB中创建了这个cron.xml-信息:/refreshdataDailydatarefreshcrontaskeveryday05:00我部署了它,但它不起作用,我无法在控制台中找到“cronjobpanel”来监视它,甚至无法检查GAE是否识别它...文档说“(您可以通过单击左侧导航Pane中的CronJobs来验证刚刚部署的Cron作业。)http://i.stack.imgur.com/1niVt.png”但它不存在了,gae的控制台UI改变了,它现在在哪里?我尝试

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

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