如何将时间表更改为每天的某个时间而不是每隔 X 次
How to change schedule to a certain time every day insted of every X time
我正在尝试让任务每天早上 8 点执行(示例)。
目前我所做的是创建一个任务,自动执行它但只执行一段时间(在本例中为 50 秒)我希望它在每天早上 8 点执行。
我当前的代码:
Timer time = new Timer();
certif_envia_notificacion st = new certif_envia_notificacion();
time.schedule(st, 0, 50000);
其中 certif_envia_notificacion 是我要执行的任务,它每 50 秒执行一次。
目前我唯一能解决这个问题的方法是在任务 certif_envia_notificacion 中询问时间并在早上 8 点执行,但这似乎是对服务器资源的巨大浪费,因为我必须执行每天至少完成 24 次任务。
提前致谢。
我最后做的是每隔一小时执行一次该程序,并提出一个小时和 select 我想要的小时的问题,我知道这不是最好的方法,但我需要快速完成它。 ...
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
if(hour == DesiredHour){
//do stuff
}else if(hour == DesiredHour2){
//do stuff 2
}
感谢评论。
这是我想出的一种 hack 解决方案,但请根据您的要求随意提供 comments/feedback。
基本上,根据我的理解,您有一个 Java 程序,它会在计算机启动(如果重新启动)时自动 运行,然后每小时检查一次是否是运行 应用程序的正确时间。为什么不以这种方式保持 运行ning,而不是每小时 运行ning,计算到达下一个所需时间所需的时间(例如,第二天晚上 8 点)。
例如,假设您在 3:15PM 重新启动它。当java程序运行s时,get它获取当前时间(System.currentTimeMil...),然后计算到达8PM所需的时间。您可以对此做一些简单的数学运算(例如 20 - 当前时间 = 等待时间)如果它是负数,只需将 24 添加到它(例如,如果它是 20 - 23,答案是 24 - 3 = 21,因此在下一个晚上 8 点等待 21 小时)。
每次 运行 代码或启动时都可以使用此过程。我建议只创建一个简单的函数来计算所需的睡眠时间。
我正在尝试让任务每天早上 8 点执行(示例)。
目前我所做的是创建一个任务,自动执行它但只执行一段时间(在本例中为 50 秒)我希望它在每天早上 8 点执行。
我当前的代码:
Timer time = new Timer();
certif_envia_notificacion st = new certif_envia_notificacion();
time.schedule(st, 0, 50000);
其中 certif_envia_notificacion 是我要执行的任务,它每 50 秒执行一次。
目前我唯一能解决这个问题的方法是在任务 certif_envia_notificacion 中询问时间并在早上 8 点执行,但这似乎是对服务器资源的巨大浪费,因为我必须执行每天至少完成 24 次任务。
提前致谢。
我最后做的是每隔一小时执行一次该程序,并提出一个小时和 select 我想要的小时的问题,我知道这不是最好的方法,但我需要快速完成它。 ...
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
if(hour == DesiredHour){
//do stuff
}else if(hour == DesiredHour2){
//do stuff 2
}
感谢评论。
这是我想出的一种 hack 解决方案,但请根据您的要求随意提供 comments/feedback。
基本上,根据我的理解,您有一个 Java 程序,它会在计算机启动(如果重新启动)时自动 运行,然后每小时检查一次是否是运行 应用程序的正确时间。为什么不以这种方式保持 运行ning,而不是每小时 运行ning,计算到达下一个所需时间所需的时间(例如,第二天晚上 8 点)。
例如,假设您在 3:15PM 重新启动它。当java程序运行s时,get它获取当前时间(System.currentTimeMil...),然后计算到达8PM所需的时间。您可以对此做一些简单的数学运算(例如 20 - 当前时间 = 等待时间)如果它是负数,只需将 24 添加到它(例如,如果它是 20 - 23,答案是 24 - 3 = 21,因此在下一个晚上 8 点等待 21 小时)。
每次 运行 代码或启动时都可以使用此过程。我建议只创建一个简单的函数来计算所需的睡眠时间。