![]() |
1
1
Java提供 java.util.concurrent.scheduledThreadPoolExecutor 它还可以安排命令在给定的延迟后运行,或定期执行。
|
![]() |
2
1
遗嘱执行人
旧的学校方式
新的学校方式使用 Executors framework 它处理在后台线程上调度任务的细节。
设置一个执行器来运行
第一步是获取当前日期。 时区对确定日期至关重要。在任何一个特定的时刻,日期都会因地区而异。例如,在午夜几分钟后 Paris France 是新的一天,而昨天还在 Montréal Québec . 如果未指定时区,jvm将隐式应用其当前默认时区。违约可能 change at any moment 运行时(!),所以结果可能会有所不同。最好指定 desired/expected time zone 显式地作为参数。
指定一个
proper time zone name
格式为
从那得到一周的当前日期。
如果今天是星期一,那么看看文件是否已被写入。如果没有,写下来。
把所有这些放在一个命名方法中。
在一个 预定执行人服务 . 指定两次运行之间的等待时间。如果我们指定每3小时运行一次任务,那么,逻辑指示,我们的每周文件将在每周一午夜到凌晨3点之间的某个时间写入。
调度执行器服务的一个大问题是:如果在运行
搜索堆栈溢出以获取更多信息,因为所有这些都已被多次覆盖。 关于 Java.时间
这个
java.time
框架是在Java 8和之后构建的。这些类取代了麻烦的旧类
legacy
日期时间类,如
这个 Joda-Time 项目,现在在 maintenance mode ,建议迁移到 java.time 类。 要了解更多信息,请参阅 Oracle Tutorial . 和搜索堆栈溢出的许多例子和解释。规格是 JSR 310 .
你可以交换
Java.时间
直接使用数据库的对象。使用
JDBC driver
符合
JDBC 4.2
或稍后。不需要弦,不需要
在哪里获得java.time类?
这个
ThreeTen-Extra
project使用其他类扩展java.time。这个项目是将来可能添加java.time的一个试验场。你可以在这里找到一些有用的类,比如
|
![]() |
3
0
创建quartz cron作业调度程序
|
![]() |
4
0
因为你在使用
例如
|
|
5
0
使用Calender API,calendar.get(calendar.day_of_week)将返回周一的int 2。
|
![]() |
6
0
然后,您可以检查文件是否存在,写入同一文件,如果文件不存在,您将使用预期的文件名创建一个新文件并写入该新文件。但根据要求,应正确处理年假 |
![]() |
7
0
使用
|