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 如何在我的web服务中每天00:00调用函数_Java_Multithreading_Web Services_Rest - Fatal编程技术网

Java 如何在我的web服务中每天00:00调用函数

Java 如何在我的web服务中每天00:00调用函数,java,multithreading,web-services,rest,Java,Multithreading,Web Services,Rest,我的问题是,我有一个使用类Gestion的RESTful Web服务。 在这个类中,我有一个函数\u update\u,我想每天00:00调用这个函数 我不知道如何做到这一点,所以我查看了Web,发现使用线程可能是一个不错的选择。然而,我不知道如何使用它。我是否必须将我的\u update函数移动到一个新类中?如果您使用的是EJB,则可以使用计时器服务 @Singleton public class TimerService { @Inject HelloService hell

我的问题是,我有一个使用类
Gestion
的RESTful Web服务。 在这个类中,我有一个函数
\u update\u
,我想每天00:00调用这个函数


我不知道如何做到这一点,所以我查看了Web,发现使用线程可能是一个不错的选择。然而,我不知道如何使用它。我是否必须将我的
\u update
函数移动到一个新类中?

如果您使用的是EJB,则可以使用计时器服务

@Singleton
public class TimerService {
    @Inject
    HelloService helloService;

    @Schedule(second="0", minute="0", hour="0")
    public void update(){
        System.out.println("timer: " + helloService.sayHello());
    }
}

使用任何开源作业或调度程序更多详细信息请参见此处。 或者做纯粹的编码。此链接可能对您有所帮助。睡到半夜,醒来做任务,然后再去睡觉

@Override
public void run() {
    while (true) {
        try {
            Thread.sleep(calculateSleepingTime());
            // do what ever you want
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

private long calculateSleepingTime() throws ParseException {

    Calendar c = Calendar.getInstance();
    c.add(Calendar.DAY_OF_MONTH, 1);
    c.set(Calendar.HOUR_OF_DAY, 0);
    c.set(Calendar.MINUTE, 0);
    c.set(Calendar.SECOND, 0);
    c.set(Calendar.MILLISECOND, 0);
    return (c.getTimeInMillis()-System.currentTimeMillis());
}

你用的是哪种语言、版本等?哦,对不起,我完全忘了提那个。我在Tomcat 7.0 Servlet容器上使用Java和Jersey 2。使用cron作业库,如。为什么不使用good old
cron
?遗憾的是,我没有使用EJB:(我还是要试试看怎么用。