java - 定时运行任务java,apache

标签 java apache jakarta-ee scheduled-tasks

我有一个要求,我需要在特定的时间间隔内执行 n 个任务。我有一个数据库,其中包含执行任务所需的值 - java,我有一个在 Windows 平台上配置的 Apache 网络服务器。

有人可以指导我完成这项任务吗。

最佳答案

您可以使用 Quartz api为了这个目的。

Quartz 是易于使用的调度 API,并进行调度的初始化。

您可以对毫秒和重复作业使用简单触发器并设置重复间隔。 Advance Trigger CronTrigger 的工作原理与 unix cron 完全相同。在 CronTrigger 中,我们可以定义选定的日期,例如每周三、周五、每月和每年。

这是一个示例 tutorial解释了如何使用它

带有简单 Servlet 的 Quartz

网络.xml

<web-app>
 <display-name>timer</display-name>

    <servlet>
     <servlet-name>InitializeServlet</servlet-name>
     <servlet-class>com.cron.InitializeServlet</servlet-class>
     <load-on-startup>1</load-on-startup>
    </servlet>

</web-app>

初始化Servlet.java

package com.cron;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class InitializeServlet extends HttpServlet {

 public void init() throws ServletException {

    try {
        System.out.println("Initializing NewsLetter PlugIn");

        CronScheluder objPlugin = new CronScheluder();

    }
    catch (Exception ex) {
      ex.printStackTrace();
    }

  }

}

CronScheluder.java

package com.cron;

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;

public class CronScheluder {

    public CronScheluder() throws Exception {

        SchedulerFactory sf = new StdSchedulerFactory();

        Scheduler sche = sf.getScheduler();

        sche.start();

        JobDetail jDetail = new JobDetail("Newsletter", "NJob", MyJob.class);

        //"0 0 12 * * ?" Fire at 12pm (noon) every day
        //"0/2 * * * * ?" Fire at every 2 seconds every day

 CronTrigger crTrigger = new CronTrigger("cronTrigger", "NJob", "0/2 * * * * ?");

        sche.scheduleJob(jDetail, crTrigger);
    }
}

我的工作.java

package com.cron;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class MyJob implements Job {

    public void execute(JobExecutionContext context)
     throws JobExecutionException {

      System.out.println("Cron executing ");

    }
}

关于java - 定时运行任务java,apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4982932/

相关文章:

java - 简单的 Android Activity 导致崩溃

php5 curl : Recompiling does not reflect in phpinfo

php - 无法使用android mobile访问localhost

html - 哇扎 : Video could not played when using dynamic smil

java - EJB 事务和 JAX-RS

java - 以编程方式使 Android 可穿戴设备静音

java - 使用 List<> 参数重载 Java 函数

java - 从 JNLP 运行应用程序时出现不需要的登录对话框

java - Apache Http 客户端覆盖用户定义的内容长度 header

java - 带有查询字符串的 url 模式