安排每天运行 2 次的任务 [重复]

Posted

技术标签:

【中文标题】安排每天运行 2 次的任务 [重复]【英文标题】:Schedule a Task which runs 2 times a day [duplicate] 【发布时间】:2019-11-25 20:18:40 【问题描述】:

我想开发一个工具,可以每天 2 次删除文件夹的所有文件 - 早上和晚上 8:30。 它应该只永久删除所有文件,而不是文件夹。

我的删除代码运行良好,但我的日程安排有问题。我不知道如何编写调度程序代码。谁能帮我用正确的代码来安排它?

public class Delete 
 
    public static void main(String[] args) 
     
        try
         
            Files.deleteIfExists(Paths.get("C:\\Users\\Dekstop\\Dummy")); 
//I want to delete all Files not the Folder
         
        catch(NoSuchFileException e) 
         
            System.out.println("No such file/directory exists"); 
         
        catch(DirectoryNotEmptyException e) 
         
            System.out.println("Directory is not empty."); 
         
        catch(IOException e) 
         
            System.out.println("Invalid permissions."); 
         

        System.out.println("Deletion successful."); 
     
 

【问题讨论】:

使用ScheduledExecutorService。 为什么不使用操作系统级别的调度程序,而不是自己编写?或者可以使用 Quartz 之类的框架。 我想为我的项目制作它,所以不能使用 OS 调度程序....我不熟悉 Quartz,你能告诉我更多关于它的信息吗?? 如果你的应用程序真的抛出了一个错误,并与调度程序一起完全停止了怎么办?这就是操作系统调度程序可以提供帮助的地方——它总是会在系统开启时触发 @cricket_007 你能告诉我如何使用操作系统调度程序吗?我以前从未使用过它...谢谢:) 【参考方案1】:

你可以使用 Timer.schedule(TimerTask task, Date firstTime, long period) 方法

将第一次设置为早上(任何时间)并将时间段设置为 12 小时即可。

【讨论】:

【参考方案2】:

用这个Original post走得更远

public class ExecuteTimer 
  public static void main(String[] args)
       MyTimer te1=new MyTimer("My_Task1");
       MyTimer te2=new MyTimer("My_Task2");
      Timer t=new Timer();
      t.scheduleAtFixedRate(te1, 0,5*1000);
      t.scheduleAtFixedRate(te2, 0,1000);
   

MyTimer.class

public class MyTimer extends TimerTask
private String timername ;
public MyTimer(String n)
  this.timername=n;

@Override
public void run() 
    System.out.println(Thread.currentThread().getName()+" "+name+" the task has executed successfully "+ new Date());
    if("Task1".equalsIgnoreCase(name))
      try 
      Thread.sleep(10000);
       catch (InterruptedException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
      


【讨论】:

谢谢,我对代码有疑问,所以我必须创建 TimerTask 类? 是的,根据您的问题。最好与单独的课程一起使用 好的!谢谢哥们:) 它向我显示一个错误:没有找到适合计划的方法 dzone.com/articles/schedulers-in-java-and-spring 去吧

以上是关于安排每天运行 2 次的任务 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

安排本地通知从明天开始每天重复

第一个迭代任务——倒计时

schtasks /create(有一个每天运行并每小时重复的任务

如何安排每小时开始的任务

如何安排脚本定期运行?

如何在 Windows 命令提示符下每 5 分钟安排一次任务?