gpt4 book ai didi

java - Quartz 在启动时运行作业

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:07:11 24 4
gpt4 key购买 nike

我正在尝试每天在特定时间和服务器启动时运行一个作业,以确保数据是最新的。不幸的是,我不知道如何使用 xml 文件将 quartz 设置为在服务器启动时运行。这是我的日程安排:

<schedule>
<job>
<name>UpdateDashboardStats</name>
<group>UpdateDashboardStats</group>
<description>Updating Dashboard Statistics</description>
<job-class>utils.UpdateDashboardStats</job-class>
</job>

<trigger>
<cron>
<name>UpdateDashboardStats</name>
<job-name>UpdateDashboardStats</job-name>
<job-group>UpdateDashboardStats</job-group>
<!-- It will run at 1am every day -->
<cron-expression>0 0 1 * * ?</cron-expression>
</cron>
</trigger>
<trigger>
<simple>
<name>UpdateDashboardStatsStartup</name>
<job-name>UpdateDashboardStats</job-name>
<job-group>UpdateDashboardStats</job-group>
<description>Run once at startup</description>
<misfire-instruction>SmartPolicy</misfire-instruction>
<repeat-count>0</repeat-count>
<repeat-interval>10</repeat-interval>
</simple>
</trigger>
</schedule>

最佳答案

我认为仅使用 XML 配置启动调度程序是不可能的:您还需要构建启动调度程序的一个实例。只需使用以下代码以编程方式启动调度程序:

scheduler = new StdSchedulerFactory("quartz.properties").getScheduler();
try {
scheduler.start();
} catch (SchedulerException e) {
logger.error("Error getting scheduler status", e);
}

这足以触发 XML 中定义的触发器(在 quartz.properties 中引用)。


..但如果您使用的是容器(如 Apache Tomcat),请使用监听器或 Servlet 来启动仅使用 XML 的调度程序。参见 this官方文档。

关于java - Quartz 在启动时运行作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19943473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com