Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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中每晚6点运行一个方法?_Java_Concurrency - Fatal编程技术网

如何在java中每晚6点运行一个方法?

如何在java中每晚6点运行一个方法?,java,concurrency,Java,Concurrency,如何在每晚6点运行exportToMailDaily方法。我搞混了1L,时间单位。天在这里。。。如何做到这一点。看看。最简单的方法是使用Linux cron作业或Windows计划任务在适当的时间启动Java程序 在Java中测试时间似乎是一种复杂的方法。您应该让您的程序或某个第三方或操作系统调度器一直运行。仅在java中无法做到这一点。计算您需要的睡眠时间,并相应地进行睡眠。也许把睡眠时间限制在下一个整小时,这样你就不会对计算夏令时的错误感到惊讶了。每小时醒来一次重新计算睡眠时间是相当便宜的

如何在每晚6点运行exportToMailDaily方法。我搞混了1L,时间单位。天在这里。。。如何做到这一点。

看看。

最简单的方法是使用Linux cron作业或Windows计划任务在适当的时间启动Java程序


在Java中测试时间似乎是一种复杂的方法。

您应该让您的程序或某个第三方或操作系统调度器一直运行。仅在java中无法做到这一点。

计算您需要的睡眠时间,并相应地进行睡眠。也许把睡眠时间限制在下一个整小时,这样你就不会对计算夏令时的错误感到惊讶了。每小时醒来一次重新计算睡眠时间是相当便宜的


挂起笔记本电脑、修理时钟等可能仍然会让你失去同步。坚持使用已建立的实用程序,例如解决了所有这些问题的cron,这是一个好主意。

用于简单的调度工作。您不需要直接使用executors来执行此操作。

下面是一个很好的演练,介绍如何执行此操作:


祝你好运。

@RameshK有关cron作业和crontab(通常在/etc/crontab中)的入门知识,请参见:它基本上指定了一个时间、日期等,以及在给定时间运行的脚本。你可以调用你的java程序在这个时候执行。明显的缺点是它引入的平台依赖性。你是否使用任何像Tomcat、JBoss这样的应用程序?有像Spring这样的框架吗?Unix或Wondows?时间单位不允许您指定下午6点。
public ReportService() {
        super();
        // TODO Auto-generated constructor stub
        executorService = Executors.newSingleThreadScheduledExecutor();
        executorService.schedule(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                try {
                    exportToMailDaily();
                } catch (Throwable e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }, 1L, TimeUnit.DAYS);
    }