当前位置: 首页 > 知识库问答 >
问题:

在java中,如何在特定时间调用方法?

苍恩
2023-03-14

是否可以在特定的时间调用java中的方法?例如,我有一段这样的代码:

class Test{

    public static void main(String args[]) {
        // here i want to call foo at : 2012-07-06 13:05:45 for instance
        foo();
    }
}

如何在java中实现这一点?

共有3个答案

华萧迟
2023-03-14

这是可能的,我会使用一个图书馆,如http://quartz-scheduler.org/

Quartz是一个功能齐全的开源作业调度服务,可以与任何Java EE或Java SE应用程序集成,或与之一起使用,从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的时间表,以执行数十个、数百个甚至数万个作业;其任务被定义为标准Java组件的作业,这些组件可以执行几乎任何您可以对其进行编程的操作。

东郭弘
2023-03-14

您可以使用ScheduledExecutorService,它是“更通用的定时器/定时器任务组合的替代品”(根据定时器的javadoc):

long delay = ChronoUnit.MILLIS.between(LocalTime.now(), LocalTime.of(13, 5, 45));
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.schedule(task, delay, TimeUnit.MILLISECONDS);
宫坚
2023-03-14

使用java.util.Timer类,您可以创建一个计时器并安排它在特定时间运行。

下面是一个例子:

//The task which you want to execute
private static class MyTimeTask extends TimerTask
{

    public void run()
    {
        //write your code here
    }
}

public static void main(String[] args) {

    //the Date and time at which you want to execute
    DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = dateFormatter .parse("2012-07-06 13:05:45");

    //Now create the time and schedule it
    Timer timer = new Timer();

    //Use this if you want to execute it once
    timer.schedule(new MyTimeTask(), date);

    //Use this if you want to execute it repeatedly
    //int period = 10000;//10secs
    //timer.schedule(new MyTimeTask(), date, period );
}
 类似资料:
  • 问题内容: 是否可以在特定时间在Java中调用方法?例如,我有一段这样的代码: 如何在Java中完成此操作? 问题答案: 使用java.util.Timer类,您可以创建计时器并将其计划为在特定时间运行。 下面是示例:

  • 我有一个微服务,它会收到一条消息,大概是这样的: 是否有任何开箱即用的解决方案允许方法每天在给定时间运行?使用 Spring 中的 cron 不涉及在运行时更改时间。我需要使用更灵活的选项(更改运行时,多次启动) 谢谢!

  • 问题内容: 我想知道是否有可能通过C#项目的Python脚本调用特定的方法。 我没有代码…但是我的想法是: Python代码: C#代码: 如何通过C#从此Python脚本调用方法之一? 问题答案: 您可以托管IronPython,执行脚本并通过创建的范围访问脚本中定义的功能。 以下示例显示了C#中使用该函数的基本概念和两种方式。

  • 我试图从根本上解决java中的性能问题。我使用jprofiler获得了采样配置文件。我可以看到许多不同的URI在根上具有相同的方法调用(xss2csv) 例如 用户1文件1 某物 xss2csv User2File2 某物 xss2csv 我想找出xss2csv方法花费的总时间百分比。单个调用显示140(所有状态),但热点视图显示此方法的0。请告知。 如果需要更多信息,请告诉我。

  • 例如,我想编写一个Java程序,在每天上午12点打印“Hello World”,如何使用Quartz调度器实现这一点? 这样地?我应该把打印“hello world”方法放在哪里?

  • 问题内容: 我的Java Scheduler有一个问题,我的实际需要是我必须在特定时间启动我的进程,并且我将在特定时间停止,我可以在特定时间启动我的进程,但是我不能在特定时间停止我的进程,如何指定进程在调度程序中运行多长时间(在这里我不会放),任何人对此都有建议。 问题答案: 您可以使用带有2个计划的计划,一个计划运行任务,另一个计划终止任务-参见下面的简化示例: