「java定时扫描」java调用扫描仪
今天给各位分享java定时扫描的知识,其中也会对java调用扫描仪进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 定时的问题,我现在想实现的是每个月的第四个工作日零点点去扫描数据库,修改一个字段的状态
- 2、请问 java 怎么定时扫描 获得最新的 新建的文件的名字,请给点思路。谢谢 分少,不好意思。。。。。
- 3、如何用java实现定时扫描文件夹
- 4、用JAVA写一个程序每隔一秒扫描c:\Mailboxes\in下所有EML形式文件
- 5、java 定时的问题,我现在想实现的是每个月的第四个工作日中午十二点去扫描数据库,修改一个字段的状态
- 6、java写一个监控器,每月1号一点扫描一次,注意每月只扫描一次,考虑效率问题和资源问题!!!求大侠啊!!
java 定时的问题,我现在想实现的是每个月的第四个工作日零点点去扫描数据库,修改一个字段的状态
可以考虑使用监听器模式,实时的查看系统时间,写个函数判断是否是第四个工作日的零点,是的话,执行数据库更新操作。
请问 java 怎么定时扫描 获得最新的 新建的文件的名字,请给点思路。谢谢 分少,不好意思。。。。。
java本身是不能获取文件创建时间的,只能用lastModified方法获取最后修改时间。如果一定要新建文件的名字的话,恐怕只能使用JNI技术调用其他语言了,比如调用C++写的dll
如何用java实现定时扫描文件夹
写一个类继承Thread,重写run方法,在run方法里面写你要做的处理,然后根据你的定时要求来设置sleep的时间。
new Thread(){
run() {
// 根据具体需求设置时间:毫秒
sleep(100ms);
while (true) {
// 扫描文件夹处理
....
// 根据具体需求设置时间:毫秒
sleep(24 * 3600 * 1000);
}
}
}
java中不是有定时器吗?写好自己的任务,定时执行就可以了
Timer timer = new Timer();
Task task = new Task(){
public void run(){
System.out.println("running...");
}
};
timer.shedule(task,delayDate,internalTime);
这种跟操作系统关系紧密的操作没必要用java来做,除非你是J2EE,那么Spring里有quataz类似Unix里面cronjob的开源框架可以用,很方便
Unix、linux操作系统配到cronjob里即可,Windows操作系统的“开始”-》“附件”-》系统工具-》计划任务
用JAVA写一个程序每隔一秒扫描c:\Mailboxes\in下所有EML形式文件
public static void main(String[] args) {
// TODO Auto-generated method stub
int j = 0;
while(j5) {
File f = new File("c:/Mailboxes/in/");
File[] fArray = f.listFiles();
for(int i=0; ifArray.length; i++) {
if(fArray[i].getName().matches("[\\w]*.EML$")) {
System.out.println(fArray[i].getName());
try {
FileInputStream is = new FileInputStream(fArray[i]);
byte[] b = new byte[(int)fArray[i].length()];
is.read(b);
FileOutputStream os = new FileOutputStream("c:/mail/" + fArray[i].getName());
os.write(b);
os.close();
is.close();
fArray[i].delete();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
j++;
}
}
java 定时的问题,我现在想实现的是每个月的第四个工作日中午十二点去扫描数据库,修改一个字段的状态
修改数据库可以使用数据库本身的计划任务(job),这种方式最好。
第二种是使用程序来做如java的timer和timetask。保证在项目启动的时候启动该计划任务。
public static void main(String[] args) {
//定时任务
final Timer timer = new Timer();
// 指定任务在星期四中午12:00执行
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 0);
java.util.Date time = calendar.getTime();
timer.schedule(new TimerTask() {
public void run() {
// 你要执行的操作
try{
} catch (Exception e) {
// 出现异常的操作:如取消计划任务
timer.cancel();
}
}
},time);
}
java写一个监控器,每月1号一点扫描一次,注意每月只扫描一次,考虑效率问题和资源问题!!!求大侠啊!!
不想写代码了,给你一个我写过的参考吧,我的这个是每天晚上0点时执行程序,一天只执行一次,效率认为还不错。
package prepare;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Auto_Prepare extends Thread {
// SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");// 格式化日期
// SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");// 格式化时间
SimpleDateFormat sdfTime_ALL = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 格式化时间
public Auto_Prepare() {
}
public void run() {
// TODO Auto-generated method stub
int way = 1;// 选择的方法
System.out.println("选择的方法是:方法" + way);
if (way == 1) {// 用Thread.Sleep()方法实现
while (true) {
int ON_RestTime = 20;// 如果进行了准备工作,线程的睡眠时间,单位:小时
int OFF_RestTime = 59;// 如果不进行准备工作,线程的睡眠时间,单位:分钟
// /////////////////////////////////////////////////////////////格式化时间
Calendar Now = Calendar.getInstance();
String strTime = "现在时刻北京时间:"
+ sdfTime_ALL.format(Now.getTime()) + "----";
if (Now.get(Calendar.HOUR_OF_DAY) == 0) {
// 即当时间是0点时,开始执行下列语句
System.out.println("abcdefghijklmnopqrstuvwxyz");
System.out.println("Auto_Prepare.java====" + strTime
+ "开始准备所有数据...");
Date SHDate = Now.getTime();// 执行准备工作前的时间
PrepareData(Now);// 执行准备工作
Now = Calendar.getInstance();// 现在的时间
long RunTime = Now.getTime().getTime() - SHDate.getTime();// 准备数据消耗的时间
int hr = (int) RunTime / 1000 / 60 / 60;
int mr = (int) RunTime / 1000 / 60 - hr * 60;
int sr = (int) RunTime / 1000 - hr * 60 * 60 - mr * 60;
System.out.println("Auto_Prepare.java====现在时刻北京时间:"
+ sdfTime_ALL.format(Now.getTime())
+ "----准备工作运行时间为:" + hr + "小时" + mr + "分" + sr
+ "秒。");
Now = Calendar.getInstance();// 现在的时间
long SleepTime = ON_RestTime * 60 * 60 * 1000
+ (24 - ON_RestTime) * (60 - OFF_RestTime) * 60
* 1000 - RunTime;
// 加(24-ON_RestTime)*(60-OFF_RestTime)分钟的目的
// 是消除一天中有四次睡眠OFF_RestTime分钟造成的误差。
int hs = (int) SleepTime / 1000 / 60 / 60;
int ms = (int) SleepTime / 1000 / 60 - hs * 60;
int ss = (int) SleepTime / 1000 - hs * 60 * 60 - ms * 60;
System.out.println("Auto_Prepare.java====现在时刻北京时间:"
+ sdfTime_ALL.format(Now.getTime())
+ "----所有数据准备完毕,线程睡眠:" + hs + "小时" + ms + "分" + ss
+ "秒。");
try {
Auto_Prepare.sleep(SleepTime);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {// 不是0点,睡眠OFF_RestTime分钟
Date SHDate = Now.getTime();
Now = Calendar.getInstance();
long RunTime = Now.getTime().getTime() - SHDate.getTime();// 程序运行消耗的时间
int hr = (int) RunTime / 1000 / 60 / 60;
int mr = (int) RunTime / 1000 / 60 - hr * 60;
int sr = (int) RunTime / 1000 - hr * 60 * 60 - mr * 60;
System.out
.println("Auto_Prepare.java====现在时刻北京时间:"
+ sdfTime_ALL.format(Now.getTime())
+ "----程序运行时间为:" + hr + "小时" + mr + "分"
+ sr + "秒。");
Now = Calendar.getInstance();// 现在的时间
long SleepTime = OFF_RestTime * 60 * 1000 - RunTime;
int hs = (int) SleepTime / 1000 / 60 / 60;
int ms = (int) SleepTime / 1000 / 60 - hs * 60;
int ss = (int) SleepTime / 1000 - hs * 60 * 60 - ms * 60;
System.out.println("Auto_Prepare.java====现在时刻北京时间:"
+ sdfTime_ALL.format(Now.getTime())
+ "----时间不是0点,不做准备工作,线程睡眠:" + hs + "小时" + ms + "分"
+ ss + "秒。");
try {
Auto_Prepare.sleep(SleepTime);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}// while(true)
} else if (way == 2) {
}
}
private void PrepareData(Calendar now) {
//准备工作,即你需要让程序处理的事情
}
}
java定时扫描的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java调用扫描仪、java定时扫描的信息别忘了在本站进行查找喔。
发布于:2022-12-04,除非注明,否则均为
原创文章,转载请注明出处。