是否可以在特定的时间调用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中实现这一点?
这是可能的,我会使用一个图书馆,如http://quartz-scheduler.org/
Quartz是一个功能齐全的开源作业调度服务,可以与任何Java EE或Java SE应用程序集成,或与之一起使用,从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的时间表,以执行数十个、数百个甚至数万个作业;其任务被定义为标准Java组件的作业,这些组件可以执行几乎任何您可以对其进行编程的操作。
您可以使用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);
使用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个计划的计划,一个计划运行任务,另一个计划终止任务-参见下面的简化示例: