我的Java
Scheduler有一个问题,我的实际需要是我必须在特定时间启动我的进程,并且我将在特定时间停止,我可以在特定时间启动我的进程,但是我不能在特定时间停止我的进程,如何指定进程在调度程序中运行多长时间(在这里我不会放),任何人对此都有建议。
import java.util.Timer;
import java.util.TimerTask;
import java.text.SimpleDateFormat;
import java.util.*;
public class Timer
{
public static void main(String[] args) throws Exception
{
Date timeToRun = new Date(System.currentTimeMillis());
System.out.println(timeToRun);
Timer timer1 = new Timer();
timer1.schedule(new TimerTask()
{
public void run()
{
//here i call another method
}
} }, timeToRun);//her i specify my start time
}
}
您可以使用ScheduledExecutorService
带有2个计划的计划,一个计划运行任务,另一个计划终止任务-参见下面的简化示例:
public static void main(String[] args) throws InterruptedException {
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);
Runnable task = new Runnable() {
@Override
public void run() {
System.out.println("Starting task");
scheduler.schedule(stopTask(),500, TimeUnit.MILLISECONDS);
try {
System.out.println("Sleeping now");
Thread.sleep(Integer.MAX_VALUE);
} catch (InterruptedException ex) {
System.out.println("I've been interrupted, bye bye");
}
}
};
scheduler.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS); //run task every second
Thread.sleep(3000);
scheduler.shutdownNow();
}
private static Runnable stopTask() {
final Thread taskThread = Thread.currentThread();
return new Runnable() {
@Override
public void run() {
taskThread.interrupt();
}
};
}
问题内容: 我研究了,但是示例仅涉及使其重现。我正在寻找一种类似的功能,例如说“每个星期一的凌晨1点执行此任务”的功能。 问题答案: 感谢Patrick Altman,最近发布的1.0.3版现在支持此功能。 例:
问题内容: 我研究了,但是示例仅涉及使其重现。我正在寻找一种类似的功能,例如说“每个星期一的凌晨1点执行此任务”的功能。 问题答案: 感谢Patrick Altman,最近发布的1.0.3版现在支持此功能。 例: 请参阅更改日志以获取更多信息: http://celeryproject.org/docs/changelog.html
WorkManager是一个库,用于对满足其约束后保证执行的工作进行排队。 因此,在查看了Constraints类之后,我还没有找到任何函数来为工作添加时间约束。例如,我希望在早上8:00AM开始执行一个工作(该工作可以是OneTimeWorkRequest或PerioadWorkRequest两种类型中的任何一种)。如何添加约束以使用WorkManager调度此工作。
问题内容: 我需要安排任务以固定的时间间隔运行。如何在长间隔(例如每8个小时)的支持下执行此操作? 我目前正在使用。是否支持长时间间隔? 问题答案: 使用:
问题内容: 我想以特定的时间间隔自动安排线程。我还需要在后台连续执行此操作,而不会挂在设备上。 我已经使用Application Manager Class进行了尝试,但这是用于应用程序调度的,我需要在应用程序内调度线程。 问题答案: 我会使用TimerTask: 请参阅BlackBerry API隐藏的宝石(第二部分)
我在Tomcat中部署了一个web应用程序。我有一套代码,它检查数据库中的某些数据,然后根据这些数据向用户发送邮件。有人能建议如何在Tomcat中安排这项工作吗。