安排每天运行 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 次的任务 [重复]的主要内容,如果未能解决你的问题,请参考以下文章