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

Spring计划的任务:在XML配置中指定时区

蒋招
2023-03-14

是否可以通过以下注释在XML配置中实现Java中的时区设置?

@Scheduled(cron = "0 0 8,20 * * *", zone = "GMT-3")

我在XML定义中看不到任何其他属性,但也许有一个解决方案可以实现所需的目标。

示例配置:

<task:scheduler id="myScheduler" pool-size="2" />
<bean class="MyClass"
    id="myBean" />
<task:scheduled-tasks scheduler="myScheduler">
    <task:scheduled ref="myBean" method="gprs" fixed-rate="300000" />
    <task:scheduled ref="myBean" method="reporteGpsGprs" cron="0 0 8,20 * * *" />
</task:scheduled-tasks>

当前的Spring依赖项:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.2.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>4.2.2.RELEASE</version>
    </dependency>

共有2个答案

奚高扬
2023-03-14

不幸的是,在xsd中,我没有看到任何其他属性来定义xml中的时区。您可以做的是使用refmethod属性来定义返回计划的工厂类。

裁判:http://www.springframework.org/schema/task/spring-task-4.0.xsd

广献
2023-03-14

你可以使用触发器的属性:

<task:scheduler id="myScheduler" pool-size="2" />
<bean class="MyClass" id="myBean" />
<task:scheduled-tasks scheduler="myScheduler">
    <task:scheduled ref="myBean" method="reporteGpsGprs" trigger="myTriggerId" />
</task:scheduled-tasks>

并定义一个org.springframework.scheduling.support.CronTrigger就像这样:

<bean id="myTriggerId" class="org.springframework.scheduling.support.CronTrigger">
    <constructor-arg name="expression" value="0 0 8,20 * * *"/>
    <constructor-arg name="timeZone" value="GMT-3"/>
</bean>
 类似资料:
  • 我有一套使用spring框架用Java写的服务。一些服务有预定的任务(使用spring的< code>@Scheduled注释)来做一些内务处理(生成处理过的数据,数据清理等。).由于这些计划任务,我不能运行服务的多个实例,因为所有实例都选择相同的任务,并且多次执行,导致重复/损坏的数据。为了解决这个问题,我想在任务执行时进行检查,并且只允许在一个实例上执行。我该怎么做?这个问题有更好的解决方法吗

  • 我已经使用java创建了特定于时区的计划任务事件。我的密码是贝娄。 但是问题是当调用这个方法时,它会很快运行这个任务。我需要每天12点在亚洲/科伦坡时区运行这项工作。那要怎么做?

  • 我在context.xml文件中定义了一个Spring调度任务,它每分钟运行一次。该任务调用postgres存储过程。存储过程运行时可以持续一分钟以上。如果当前运行没有完成,spring框架会调用相同的调度程序吗?谢谢,

  • 本文向大家介绍Spring定时任务实现与配置(一),包括了Spring定时任务实现与配置(一)的使用技巧和注意事项,需要的朋友参考一下 朋友的项目中有点问题。他那边是Spring架构的,有一个比较简单的需要定时的任务执行。在了解了他的需求之后,于是提出了比较简单的Spring+quartz的实现方式。 注意本文只是讨论,在已搭建完毕的Spring工程下,完成最简单的定时任务。 第一步,要知道Spr

  • 我用Spring Boot构建simpy web api services应用程序,并用Spring Boot中的计划任务创建了一些cron作业服务,但不起作用。我需要在每周的12:00(星期一至星期五)运行此服务。这是一个exmaple sheduling:

  • 在此之前我问了一个问题。我的服务conifg是: 我编写了一个扩展mediator交易文件。该类返回文件名并向服务发送请求。服务没有输入消息。我要每天13:30的服务。我尝试添加新的计划任务。但是它不能工作?谁能告诉我如何设置这个计划任务? 我也不知道如何设置“固定服务器”。