当前位置: 首页 > 知识库问答 >
问题:

Spring@Scheduled annotation方法在给定时间内运行多次

姬高澹
2023-03-14

Spring计划的cron作业在计划时间内运行了两次。

使用spring 4.2.5版本。

REST API-

web.xml如下。

 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>  
    <servlet-name>REST-Service-Servlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>      
    <init-param>
        <param-name>com.sun.jersey.config.provider.packages</param-name>
        <param-value>RESTController</param-value>
    </init-param>    
    <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
        <param-value>com.om.ResponseCorsFilter</param-value>
    </init-param>
     <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
        <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>REST-Service-Servlet</servlet-name>
 <url-pattern>/api/*</url-pattern>

任务条目的spring应用程序上下文xml文件。

<task:annotation-driven/>

春豆如下。

@Component("springBean")
public class SpringBean {

@Scheduled(cron = "0 35 23 * * ?")
public void job() {....}

共有1个答案

韩恺
2023-03-14

谢谢你的帮助。问题解决了。

解决方案:我加载了两次相同的bean,所以删除了重复的bean。

 类似资料:
  • 我在学术论文中被问到过这个问题。请告诉我答案? 假设我们有一个算法,,在二维数组中查找元素x。算法 循环访问 的行,并在每个行上调用算法 直到找到 或搜索了 的所有行。 这个算法最坏的运行时间是多少 一个。如果每行中的元素都已排序? (二)如果每行中的元素未排序?

  • 问题内容: 我对使代码在给定间隔内自动运行有一些疑问。我正在编程一种游戏模式,其中它检查玩家是否杀死了地图上的所有怪物(我有解决这些问题的方法)。我想知道编程此检查的最佳方法是什么?我已经研究了在类构造函数中某个人创建的方式。 但是我在网上看到人们在哪里 并用run方法进行检查。哪个更好?我只是想拥有每隔几秒左右运行一次的检查,查看玩家是否清除了地图,是否清除了地图,然后进行下一阶段。 问题答案:

  • 我想在Jenkins运行一个脚本10小时。这可能吗?我的脚本长度大约是55分钟。我现在已经安排它每小时运行一次。所以它保持每小时运行一次。(永不停止!!) 但是有没有办法让它在指定的时间内运行,比如说10个小时,然后自动停止?我希望它指定这个55分钟的脚本应该连续运行多长时间,然后自动停止,而不是安排。 所以,如果我在上午8点开始构建,并说运行3小时,它应该一直运行到上午11点,然后停止。

  • 问题内容: 我是Java的新手,我已经开始从事一个项目。但是,我遇到了一个障碍。我需要一种在一天中的特定时间运行的方法。我已经做了很多搜索,但是找不到任何可以解决问题的方法。我遇到了Timer类,但它似乎以一定的间隔运行。Scheduler类似乎也有同样的问题。我也遇到过Quartz,但是我认为我需要更轻巧的东西,而且只能隔一段时间看一下如何做。 也许只是因为我是新手,所以我错过了一些可以在这些课

  • 我的用例——我是一名医生。在某一天,我可以工作几个小时,但有些时间不可用。我想创建一个对象“周期我的工作日”。当有人预约上午8点到9点(即“周期病人1预约”)时,该时段将从我的工作日“删除”。当新患者访问myWorkDay时,他只看到myWorkDay-病人1约会。如果病人1释放了他的时隙,那么新患者会看到完整的myWorkDay。 有可能使用JodaTime做到这一点吗? 有一个额外的要求是不必

  • 问题内容: 我有一个bash脚本(在CentOS 6.4下运行),可以启动90个 不同的 PHP脚本。 为了避免服务器超载,我使用&符号,它可以工作,但是 我的目标是始终同时运行5个脚本 有没有办法做到这一点? 问题答案: 这个问题弹出了几次,但我找不到合适的答案。我想现在我找到了一个很好的解决方案! 不幸的是,这不是标准发行版的一部分,但make是。它有一个开关可做并联。 man make(1)