标签: quartz-scheduler

如何检查作业是否在Quartz Framework中运行

我想在我的应用程序中使用Quartz Framework.调度程序中有两个作业.现在我想检查job1是否正在运行.我怎么检查?我曾试图谷歌但未能找到解决方案.

我正在关注Quartz发行版中的第一个示例.

java quartz-scheduler

23
推荐指数
2
解决办法
2万
查看次数

如何禁用Quartz更新尝试?

我在用:

    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>1.8.0</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

当应用程序出现时,我一直得到:

2013-01-03 15:25:34 UpdateChecker [DEBUG] Checking for available updated 
                        version of Quartz...
2013-01-03 15:25:43 UpdateChecker [DEBUG] Quartz version update check failed:
                        java.io.IOException: Server returned HTTP response 
                        code: 503 for URL: long url here
Run Code Online (Sandbox Code Playgroud)

我怎样才能消除这些?(消息和尝试更新)

java quartz-scheduler

23
推荐指数
1
解决办法
1万
查看次数

Java示例:使用Quartz进行动态作业调度

我想公开一个用户界面来动态定义Quartz JOB.用户应该具有定义JOB属性的工具,例如JOB名称,cron表达式或时间间隔,任务等的特定java类.

是否有任何开源可以促进此功能?或者,如果我想为动态Quartz Scheduler创建自己的模块,那么应该采用什么方式呢?

spring quartz-scheduler

23
推荐指数
2
解决办法
6万
查看次数

python的企业调度程序(如quartz)

我正在为python寻找一个企业任务调度程序,就像quartz用于Java.要求:

  • 持久性:如果进程重新启动或机器重新启动,则所有作业必须保留在那里,并且必须在重新启动后触发.
  • 作业必须在事务中进入和退出调度程序(即,如果某些数据库操作失败,则在与调度程序无关的数据库中,则作业不得退出或进入调度程序).
  • 可扩展性.取决于项目成功的标准,但我更愿意从开始就知道我不是从死路开始.
  • 可配置性:当任务到期时,可以同时触发多少,等等.

有什么建议?是否有特定于python的东西,或者是否可能(甚至是好的)从python接口到Quartz.

python enterprise scheduled-tasks quartz-scheduler

22
推荐指数
1
解决办法
1万
查看次数

Quartz Java重新开始工作多次

对于我的应用程序,我创建作业并使用CronTriggers安排它们.每个作业只有一个触发器,作业名称和触发器名称都相同.没有工作共享触发器.

现在当我创建像这样的"0/1****?"的cron触发器时 它指示作业每秒执行一次,它工作得很好.

当我第一次暂停工作时,问题就出现了:

scheduler.pauseJob(jobName, jobGroup);
Run Code Online (Sandbox Code Playgroud)

然后让我们说50秒后恢复工作:

scheduler.resumeJob(jobName, jobGroup);
Run Code Online (Sandbox Code Playgroud)

我看到的是,在这50秒内,作业没有按要求执行.但是,当我恢复工作的那一刻,我同时看到了50份执行工作!

我认为这是由于失火指令的默认设置,但即使在创建时将触发器的失火指示设置为:

trigger.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING);
Run Code Online (Sandbox Code Playgroud)

同样的事情发生了.任何人都可以建议一种解决方法吗?

java scheduling scheduled-tasks quartz-scheduler

22
推荐指数
2
解决办法
2万
查看次数

失败时石英重试

假设我有一个以这种方式配置的触发器:

<bean id="updateInsBBTrigger"         
    class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="updateInsBBJobDetail"/>
    <!--  run every morning at 5 AM  -->
    <property name="cronExpression" value="0 0 5 * * ?"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

触发器必须与另一个应用程序连接,如果有任何问题(如连接失败),它应该每10分钟重试一次任务五次或直到成功.有什么方法可以配置触发器这样工作?

java quartz-scheduler

22
推荐指数
3
解决办法
3万
查看次数

使用Quartz在多个无状态应用服务器上安排单个作业

我在负载均衡器后面有一层相同的应用服务器.出于操作原因,我有一个约束,即两个应用服务器上的应用程序配置必须相同,以便可以轻松添加和删除节点.所有应用服务器共享同一个数据库.应用服务器不会/不会被群集.

到目前为止,这种方法运行良好,但现在我希望在一个应用服务器上执行预定的作业.所有应用服务器都将运行Quartz并具有相同的运行作业计划.触发器将在每个应用服务器上触发,但我希望只有一个应用服务器实际执行该作业 - 实际上它们都是竞争启动而且只有一个实际启动,其余的应用服务器只是忽略了该作业.这里的想法是,如果我们丢失一个应用服务器,另一个将运行该作业,如果我们添加新的应用服务器,他们将轮流运行作业.

我计划通过在数据库中创建一个"作业锁定"表来执行此操作,所有应用程序服务器在启动作业之前都会读取该表,并且只有在作业"解锁"时才会启动.首先对表进行更新的应用服务器将通过将表更新为运行状态/在作业结束时重置它来实质上阻止其他服务器.

在我构建之前,我很感激那些有更多石英经验的人的一些意见:

a)我可以将此行为挂钩到Quartz中,以便不必在每个作业的基础上完成吗?即开发人员可以添加新的工作而不必担心工作锁定,因为它被抽象掉了.

b)Quartz是否提供任何内置机制来实现类似于上面的内容,所以我不必自己滚动它?

谢谢!

java quartz-scheduler

21
推荐指数
1
解决办法
1万
查看次数

TaskScheduler,@ Scheduled和quartz

有没有办法让@Scheduled石英作为底层调度程序?

我能想到的两件事,但都需要一些工作:

  • 创建一个BeanPostProcessor将解析@Scheduled注释并注册石英作业的自定义
  • 实施TaskScheduler委托给石英Scheduler.

问题是:是否已经针对上述两个选项编写了一些内容,还有其他选择吗?

java spring quartz-scheduler

21
推荐指数
1
解决办法
7658
查看次数

Quartz CronTrigger - 获得下一个火力时间

我正在使用Quartz CronTrigger工具来解析cron调度格式字符串,以确定何时应运行特定作业.我实际上并没有使用Quartz安排工作.

CronTrigger中有一个名为getFireTimeAfter(Date)的方法,它给出下一次作业将在给定日期之后触发的时间.当提供的日期现在或将来时,这很有效.但如果日期已经过去,它似乎不起作用.

Date currTime = new Date();
CronTrigger tr = new CronTrigger();
tr.setCronExpression("0 0 23 3,18 * ? *");
Date nextFireAt = tr.getFireTimeAfter(currTime);
System.out.println("Reference time: " + currTime);
System.out.println("Next fire after reference time: " + nextFireAt);
Run Code Online (Sandbox Code Playgroud)

这是每月3日和18日23:00开火的cron时间表.例如,如果我今天(8月11日)这样做,我看到:

Reference time: Thu Aug 11 10:04:25 MDT 2011
Next fire after reference time: Thu Aug 18 23:00:00 MDT 2011
Run Code Online (Sandbox Code Playgroud)

但是,如果我将参考日期设置为过去,它会给我相同的下一个开火时间.

Reference time: Wed Dec 31 17:00:00 MST 1969
Next fire after reference time: Thu Aug 18 23:00:00 MDT 2011
Run Code Online (Sandbox Code Playgroud)

我期待输出为:

Reference time: …
Run Code Online (Sandbox Code Playgroud)

java cron quartz-scheduler

21
推荐指数
2
解决办法
4万
查看次数

如何在执行代码时第一次停止弹出批量预定作业?

我正在使用带有石英的弹簧批2.2.4在某个时间运行一些工作

问题是作业总是在第一次执行代码后运行,然后根据计划的时间运行.我想停止第一次运行,让它只根据预定的时间运行.

我的cron表达式是"0 0 0**?" 我也试过"0 0 0 1/1*?*",但它仍然会在应用程序启动时执行一次

如何在应用程序启动时停止第一次执行?

这是作业上下文文件:

<batch:job id="exceptionLogJob">
        <batch:step id="exceptionLogReadWriteStep">
            <batch:tasklet >
                <batch:chunk reader="exceptionLogReader" writer="exceptionLogWriter"
                    commit-interval="1000" />
            </batch:tasklet>
        </batch:step>
    </batch:job>


    <!-- ======================================================= -->
    <!-- READER -->
    <!-- ======================================================= -->
    <bean id="exceptionLogReader"
        class="org.springframework.batch.item.database.JdbcCursorItemReader">
        <property name="dataSource" ref="dataSource" />
        <property name="sql" value="SELECT a.*,a.rowid FROM SF_EXCEPTION_LOG a WHERE DATETIME  > SYSDATE - 1" />
        <property name="rowMapper" ref="ExceptionLogRowMapper" />
    </bean>
    <!-- ======================================================= -->
    <!-- Writer -->
    <!-- ======================================================= -->
    <bean id="exceptionLogWriter"
        class="com.mobily.sf.batchprocessor.exceptionlog.ExceptionLogWriter" />

            <bean id="jobDetailExceptionLog" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass"
            value="com.sf.batchprocessor.commons.JobLauncherDetails" /> …
Run Code Online (Sandbox Code Playgroud)

cron spring crontab quartz-scheduler spring-batch

21
推荐指数
2
解决办法
2万
查看次数