问题标签 [spring-scheduled]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5908 浏览

java - 多个 Spring 3.2 计划任务不会并行运行

我有两个要并行运行的计划任务。这两个任务执行一个 Spring Batch 作业。每 15 秒一次,另一次每 3 秒一次。问题是一个将运行,另一个被阻塞直到它完成。

我似乎在任何地方都找不到类似的问题或示例。有任何想法吗?谢谢,/w

这是我的一些配置。我将 spring-task-3.2 和 spring-batch-2.2 与 Spring 3.2 一起使用。

此批处理作业由mappingRunScheduler. 另一个任务runScheduler非常相似,没有共享任何 bean。

-MappingRunScheduler运行批处理作业。

0 投票
1 回答
1365 浏览

spring - 在集成测试中替换 ScheduledAnnotationBeanPostProcessor

所以,我有一个使用 @Scheduled 注释来完成各种工作的 Spring 应用程序。在产品中,它工作得很好。然而,这个特性在运行 spock 集成测试时给我们带来了一些问题——一旦容器启动,我们所有的任务都会被触发,它会破坏我们的测试运行。

我正在寻找一种关闭调度功能的方法,但仍然让容器(使用@ComponentScan 配置)将其作为常规的 'ol bean 来选择。

根据我到目前为止所做的一些工作,似乎如果我可以用无操作实现覆盖内置的 ScheduledAnnotationBeanPostProcessor 我可以实现这个目标..但是当我在容器中创建这个 bean 时(使用 @ Bean("scheduledAnnotationBeanPostProcessor"-参见下面的代码部分),它似乎只是添加到 BeanPostProcessors 列表中-它仍然包含原始实现。

所以,我想我的问题是——如何连接一个将替换内置 BeanPostProcessor 的 bean?仅供参考,我使用的是 Spring 3.2.4,并且该应用程序是通过 Spring 注释 100% 配置的。

谢谢。

0 投票
1 回答
2912 浏览

java - 通过在服务器上同时运行多个实例的注释进行 Spring 3 任务调度

我正在使用 spring 调度程序来调度作业。它在本地运行良好,但在服务器上它为同一个实例运行多次。

从服务器登录

应用程序上下文.xml

GetDeviceStatusJob.java

0 投票
2 回答
4462 浏览

java - Spring @Scheduled 注解和 Singleton 类

我创建了一个具有默认(单例)范围的类的 bean。在课堂上,我有一个计划每小时运行一次的方法。

我的应用程序配置看起来像这样,

我假设运行计划任务的线程将使用相同的 TaskService bean,因为它是在单例范围内创建的。如果应用程序当前正在运行 hourlyReportTask() 并且 Spring 容器启动一个后台调度线程同时运行 hourlyReportTask() 会发生什么。它会等待访问 TaskService 实例吗?

0 投票
1 回答
35758 浏览

cron - 使用 cron(0 0/10 * * * ? ) 每秒运行一次春季计划任务

很奇怪,我将玉米设置为

它确实每 10 分钟触发一次,但问题是任务每秒运行一次。

0 投票
2 回答
828 浏览

java - 如何测量@Scheduled cron 的周期?

我需要描述@Scheduled注释是如何工作的。
Scheduled 有三个定义:fixedDelayfixedRatecronfixedDelay
的周期将从每个先前调用的完成时间开始测量,而fixedRate的周期将在每个调用的连续开始时间之间测量。

但是cron周期呢?他将如何衡量?

编辑
我知道cron不是像两个固定信息这样的时期。我将用一个例子来描述我的问题。

一个示例方法需要 2 分钟才能完成。但是使用@Scheduled -Annotation,我会让该方法每分钟运行一次。

fixedDelay 会一直等到方法完成,然后他再等一分钟。因此该方法将每 3 分钟运行一次。

fixedRate 将在每次调用的连续开始时间之间等待一分钟。因此,该方法将每分钟运行一次,无论该方法是否完成。

所以我将 cron 设置为每分钟运行一次。该方法是每分钟执行一次,还是 cron 会等到该方法完成?

0 投票
3 回答
6576 浏览

java - 池已满时的 ThreadPoolTask​​Scheduler 行为

我需要实现一个定期读取目录并处理在其中找到的文件的服务。我想经常阅读目录,例如每 5 秒。问题是发送文件可能需要一些时间。发送文件时将它们移走。我的想法是使用ThreadPoolTaskScheduler单个线程池并将任务安排为每 5 秒运行一次。该解决方案似乎有效,我经常阅读目录,当任务为空时,任务很快完成。当我发现一些文件时,任务需要更长的时间,但由于池只有一个线程,因此没有执行其他并发任务。

我的问题是我无法理解由于池已满而无法运行的计划任务发生了什么?他们是被取消还是刚刚入队。我担心排队太多任务并造成内存泄漏。

这是我的 spring.xml

和java代码。

谢谢大卫

0 投票
1 回答
19222 浏览

java - 春季计划任务未触发

我正在自学 Spring,目前正在执行计划任务,以下代码不会触发计划任务。

我相信这与我设置 Spring 上下文的方式有关,但这只是一个猜测——我正在尝试学习 Spring,所以请原谅荒谬的 while 循环。

应用程序.java:

RootContextConfiguration.java:

ScheduledTasks.java:

pom.xml:

这是我在终端中看到的:

需要明确的是,睡眠 2.5 秒并打印“循环”只是为了保持应用程序运行以查看计划任务是否触发。

我正在寻找的是打印触发时间的计划任务。它不是。

提前感谢您提供的任何帮助。

0 投票
0 回答
304 浏览

java - ScheduledTimerTask 防止重叠

我正在使用spring的ScheduledTimerTask来安排一些任务来安排一些任务。

如何确保在执行 someScheduler 时不会执行 anotherScheduler?

0 投票
1 回答
1745 浏览

java - 如何在 Spring 4.0.2 的 @Scheduled 方法中获取当前会话(HttpSession)对象?

我正在为我的 Web 应用程序使用 Spring 4.0.2。我的 Web 应用程序是关于文件处理的。有一些关于文件的状态,如“In Progress”、“On Hold”、“Completed”。一个用户可以完成多个文件,但一次只能完成一个。因此,对于单个用户,一次只有一个文件必须处于“进行中”。现在,我想每 15 分钟检查一次特定文件是否发生了任何事件。如果没有发生任何事件,我想将文件状态从“进行中”更改为“暂停”。所以我尝试在 Spring 中编写调度程序,如下所示。

有没有可能在这种方法中获得会话?如果不可能,有什么替代方案?