Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何制作作业调度程序?_Java_Multithreading_Scheduled Tasks_Threadpool - Fatal编程技术网

Java 如何制作作业调度程序?

Java 如何制作作业调度程序?,java,multithreading,scheduled-tasks,threadpool,Java,Multithreading,Scheduled Tasks,Threadpool,我想安排一个线程在每天凌晨3点执行任务。我使用Java、QuatrzAPI等提供的TimerTask制作了调度器。但是TimeTask和所有这些都不能满足我的要求。因为我的要求是我的调度程序不应该运行任何进程来检查服务器时间。意味着调度器应用程序不能处于运行模式,只是为了检查服务器运行和执行任务的时间 我正在运行无限循环来检查服务器时间。3点钟时,我的if条件被用来满足,线程被允许执行任务 但这种方法的问题是,这个无限循环处于运行模式,它坚持应用程序运行到第二天凌晨3点。是否有其他方法可以每天3

我想安排一个线程在每天凌晨3点执行任务。我使用Java、QuatrzAPI等提供的TimerTask制作了调度器。但是TimeTask和所有这些都不能满足我的要求。因为我的要求是我的调度程序不应该运行任何进程来检查服务器时间。意味着调度器应用程序不能处于运行模式,只是为了检查服务器运行和执行任务的时间

我正在运行无限循环来检查服务器时间。3点钟时,我的if条件被用来满足,线程被允许执行任务


但这种方法的问题是,这个无限循环处于运行模式,它坚持应用程序运行到第二天凌晨3点。是否有其他方法可以每天3点启动此应用程序,而无需此冗余运行模式。

您应该看看isocline的java进程引擎。它能够比Quartz更高效地编码各种功能,并具有特定的执行功能

package isocline.clockwork.examples.basic;

import isocline.clockwork.*;
import isocline.clockwork.descriptor.CronDescriptor;
import org.junit.Test;

public class ClockRepeat implements Work {

    public long execute(WorkEvent event) throws InterruptedException {
        //TODO

        return WAIT;
    }

    @Test
    public void case1() throws Exception {

        WorkProcessor processor = WorkProcessorFactory.getDefaultProcessor();
        processor.createSchedule(new CronDescriptor("* 3 * * *"), this).activate();

        processor.awaitShutdown();
    }
}

你能添加你所指的代码吗?对于(;){if(currentTime==3点钟){//excute task,这将花费50分钟}请将代码添加到你的问题中,这将使试图提供帮助的人更容易看到。另外,我假设“3点钟”是伪代码,因为它不能作为实际代码工作。所以请添加实际代码。