首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >春季日程安排:@Scheduled

春季日程安排:@Scheduled
EN

Stack Overflow用户
提问于 2010-12-08 09:04:52
回答 4查看 42.8K关注 0票数 58

我正在阅读关于调度的Spring3.0doc。我倾向于春天的JobDetailBean石英。但是,@调度的注释吸引了我的眼球。这似乎是使用Spring框架调度任务的另一种方式。基于文档,Spring提供了三种调度方式:

  1. @预定
  2. 经石英
  3. 通过JDK定时器

我对JDK计时器没有兴趣。为什么我要选择“排定”而不是“石英”?(当我提到Quartz时,我的意思是将Spring的bean包装用于Quartz)。

假设我的用例非常复杂,我将与第三方web服务通信,以便在指定的时间间隔内导入和导出数据。

EN

回答 4

Stack Overflow用户

发布于 2010-12-08 09:49:21

石英比Spring内置的调度程序复杂一个数量级,包括对持久化、事务性和分布式作业的支持。不过,这有点像猪,即使有Spring的API支持。

如果您只需每隔X秒或按cron计划在bean上执行方法,那么@Scheduled (或Spring的配置模式中的各种选项)可能就足够了

票数 42
EN

Stack Overflow用户

发布于 2017-09-14 19:06:48

我必须说明我自己关于在Spring应用程序中使用@ScheduledQuartz作为调度实现的经验。

调度作业有以下要求:

  • 最终用户应该有能力保存和调度(定义执行时间)他们自己的任务。
  • 在服务器停机期间的计划作业不应从作业队列中省略。

因此,我们必须尝试使用Quartz实现(Version2.2.3)来支持数据库中作业的持久性。一些基本结论如下:

  • 使用quartz.properties文件与Spring4MVC应用程序集成一点也不困难。
  • 我们能够选择第二个数据库来存储主数据库中的作业。
  • 服务器停机期间计划的作业只要服务器出现就开始运行。
  • 额外的好处是,我们设法在主数据库中使用自定义JobListenerTriggerListener维护了一些关于用户定义的计划作业的有用(并且更面向用户的)信息。
  • 在具有更复杂的调度需求的应用程序中,石英是一个非常有用的库。
票数 21
EN

Stack Overflow用户

发布于 2019-05-22 06:08:06

根据石英文献

我们可以使用@Scheduler中不存在的一些更复杂的特性。例如:

  1. 在Quartz中,我们可以使用scheduler.standby();在备用模式下放置调度程序,并用scheduler.start();重新调度它。
  2. 在执行作业之前或之后使用scheduler.shutdown(true);scheduler.shutdown(false);关闭调度程序
  3. 存储作业以供以后使用,当您需要作业时,可以触发它。

JobDetail job1 =newJob(MyJobClass.class). withIdentity("job1","group1"). storeDurably(). build();

  1. 将新作业添加到调度程序中,指示它用给定的名称和组“替换”现有作业(如果有的话)。

JobDetail job1 = newJob(MyJobClass.class). withIdentity("job1", "group1"). build();

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4385719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档