草庐IT

lr_scheduler

全部标签

spring - 仅在一个 WebLogic 集群节点上运行 @Scheduled 任务?

我们在集群的WebLogic10.3.4环境中运行Spring3.0.xWeb应用程序(.war),每晚执行@Scheduled作业。但是,由于应用程序被部署到每个节点(使用AdminServer的Web控制台中的部署向导),该作业每晚在每个节点上启动,因此同时运行多次。我们如何防止这种情况发生?我知道像Quartz这样的库允许通过数据库锁定表在集群环境中协调作业,或者我什至可以自己实现类似的东西。但由于这似乎是一个相当常见的场景,我想知道Spring是否还没有提供一个选项来轻松绕过这个问题,而无需向我的项目添加新库或手动解决问题。我们无法使用配置文件升级到Spring3.1,asme

java - 在 Spring Boot IntegrationTest 上禁用 @Schedule

如何在SpringBootIntegrationTest上禁用计划自动启动?谢谢。 最佳答案 请注意,外部组件可能会自动启用调度(参见SpringFramework中的HystrixStreamAutoConfiguration和MetricExportAutoConfiguration)。因此,如果您尝试在指定@EnableScheduling的@Configuration类上使用@ConditionalOnProperty或@Profile,那么由于外部组件,无论如何都会启用调度。一个解决方案有一个@Configuration类

java - Spring Async ThreadPoolTask​​Scheduler 未初始化

我正在尝试在Spring中使用Async注释,但我得到了java.lang.IllegalStateException:ThreadPoolTaskSchedulernotinitialized错误,当我尝试运行标记为异步的方法时。以下是Async的配置:@EnableScheduling@EnableAsync@ConfigurationpublicclassSchedulingConfigurationimplementsAsyncConfigurer{@OverridepublicExecutorgetAsyncExecutor(){ThreadPoolTaskScheduler

java - 升级到 springframework.scheduling.concurrent?

从Spring3.0开始,ScheduledTimerTask已被弃用,我无法理解如何升级到org.springframework.scheduling.concurrent。OnlineTimerTask扩展java.util.TimerTask的地方。这是一个简单的任务,每分钟向发布者发布一条消息。我检查了文档,但什么也没有。我不明白从并发包中使用哪种方式以及哪种方式最适合。我也想把这个xml转换成Java中的@Bean。编辑:所以我尝试用@Bean和@Configuration来实现xml,这就是我得到的。@ConfigurationpublicclassContextConfi

java - TaskScheduler、@Scheduled 和 quartz

有没有办法让@Scheduled使用quartz作为底层调度程序?我能想到的两件事,但都需要一些工作:创建一个自定义BeanPostProcessor,它将解析@Scheduled注释并注册quartz作业实现TaskScheduler以委托(delegate)给quartzScheduler。问题是:是否已经为上述两个选项编写了一些内容,还有其他选项吗? 最佳答案 我最终制作了自己的Springquartz“桥”。我计划建议将其作为对spring的改进。首先,我创建了一个新注解,将放置在实现quartzJob接口(interfac

spring - 为什么 Spring 不运行我的 @Scheduled 方法?

我有点困惑,因为我正在尝试使用@Scheduled注释,但Spring似乎没有找到我的方法。最终结果是,我用@Scheduled注释的方法都没有被执行。我通过以下声明调用了Spring的任务魔法:我有一个看起来像这样的界面:packagecom.mypackage;publicinterfaceMyInterface{publicvoidexecutePeriodically();}对应的impl如下:packagecom.mypackage.impl;//importsomittedforbrevity@ServicepublicclassMyInterfaceImplimpleme

java - 为 Spring @Scheduled 提供时区?

如何为基于Spring的@Scheduledcron作业配置时区?背景:我有一个工作每天执行一次,比如下午2点,使用Spring的@Scheduled注释:@Scheduled(cron="0014***")publicvoidexecute(){//doscheduledjob}问题在于不同服务器之间的下午2点不同,因为Spring在TimeZone.getDefault()internally上使用。此外,TimeZone.getDefault()的JavaDoc声明:GetsthedefaultTimeZoneforthishost.ThesourceofthedefaultTi

java - Spring 调度: @Scheduled vs Quartz

我正在阅读Spring3.0docs关于调度。我倾向于使用Spring的JobDetailBeanforQuartz。然而,@Scheduled注释吸引了我的眼球。看来这是使用SpringFramework调度任务的另一种方式。根据文档,Spring提供了三种调度方式:@Scheduled通过quartz通过JDK定时器我对JDKTimer不感兴趣。为什么我应该选择@Scheduled而不是Quartz?(当我提到Quartz时,我的意思是使用Spring的Quartzbean包装器)。假设我的用例足够复杂,我将与第三方Web服务通信,以指定的时间间隔导入和导出数据。

java - spring @Scheduled 注释方法是否在不同的线程上运行?

我有几个用@Scheduled(fixedDelay=10000)注释的方法。在应用程序上下文中,我有这个注释驱动的设置:问题是,有时某些方法的执行会延迟几秒甚至几分钟。我假设即使一个方法需要一段时间才能完成执行,其他方法仍然会执行。所以我不明白延迟。有没有办法减少甚至消除延迟? 最佳答案 为了完整起见,下面的代码显示了使用javaconfig配置调度程序的最简单方法:@Configuration@EnableSchedulingpublicclassSpringConfiguration{@Bean(destroyMethod="

android - 使用 Rxjava Schedulers.newThread() 与 Schedulers.io() 进行改造

在Retrofit网络请求中使用Schedulers.newThread()与Schedulers.io()有什么好处。我见过很多使用io()的例子,但我想了解原因。示例情况:observable.onErrorResumeNext(refreshTokenAndRetry(observable)).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread())...对observable.onErrorResumeNext(refreshTokenAndRetry(observable)).s