在Java中安排需要帮助?

时间:2013-03-11 06:51:07

标签: java scheduled-tasks

我从数据源(文件或dbms)中获取计划。此计划告诉我何时打开设备以及何时关闭设备。例如上午11点,下午12点30分,下午2点,下午3点......等等。该日程安排每天重复进行。每台设备都有自己的时间表。

我想根据他们的日常安排安排所有这些设备。我怎么能用Java做呢?

public class Device{
  boolean state;//true is on.
  String schedule = "11am ON, 12:30pm OFF, 2PM ON, 3PM OFF...etc";

} 

2 个答案:

答案 0 :(得分:2)

查看java.util.TimerTaskjava.util.Timer课程。

您可以使用Timer.schedule方法安排任务在特定时间运行。也来自官方文件:

  

计划在指定时间执行指定的任务。如果   时间是过去的,任务是立即安排的   执行。

还有schedule的其他变体用于安排任何重复执行的任务。

答案 1 :(得分:1)

您可以尝试实现一种轮询模式....让所有设备实现一个通用接口....

Interface DeviceScheduling
{   

    public String[] getOnTime();

    public String[] getOffTime();

    // task to be performed by device
    public void performTask();
    // stop device
    public void stopTask();
}

将所有这些设备添加到List<DeviceScheduling>,然后按特定时间间隔轮询此列表,检查当前时间是否与getOnTime()getOffTime()返回的任何条目匹配或是否为lee 。根据匹配情况,请致电performTask()stopTask()