java在servlet里设置个定时器,让其在tomcat一运行时,自动每隔几个小时执…
1、消息:描述 服务器遇到了一个内部错误,这个错误阻止完成正常的请求。其实在看错误的时间主要是看root cause(也就是错误的起因)像你遇到的错误java.lang.NullPointerException是空指针异常,这也是经常遇到的异常之一。
2、Tomcat不是用来管理定时任务的,如果没有HTTP请求,Servlet是不会被执行的。建议lz把定期执行的处理做成一个独立的Java程序,用cron执行。
3、logs:日志文件,如果服务器出现错误,会自动记录。server:服务器的管理程序。webapps:所有的可执行的web项目都会放到此目录中。work:tomcat把各种由jsp生成的servlet都放在了这个文件夹下,里面包含.java文件和.class文件。
4、Servlet是组件,必须放在容器中,使用容器访问。访问Servlet之前,必须在web.xml中配置Servlet。
5、空指针异常 你jsp上的mac是从servlet request中get出来的,在servlet中这个变量时new ArrayList(),所以mac应该不为空 那么就是下面的代码为空了:Match match = mac.get(0);检查你的match变量是否为null吧。
6、servlet-classcom.yq.javaSCADA.business.impl.GenerateData/servlet-class load-on-startup1/load-on-startup /servlet启动的web服务器,tomcat,weblogic,jboss,就会自动运行类中的init方法了。
java中如何控制时间间隔?
1、java可以只用quartz作业调度框架来做定时任务,可以动态控制运行间隔,不需要重启服务器。
2、如果是单纯的原生Java,有Timer这个类可以定时。如果是web中用框架,有cron定时。如果用spring,spring自带定时。
3、用Thread.sleep(1000);这是间隔一秒,参数可以改时间,一千是一秒。这个需要抛出异常。
4、继承Thread类,或者实现Runnable类,在run()方法里面,while(true){ Sleep(1000);//等1000毫秒,具体的时间自己定 //做你要做的东西 } 然后在程序启动的时候,start这个线程就可以。
怎样用java做个定时器,每个星期一中午12点整执行doXX这一动作。越详细…
普通thread实现 :是最常见的,创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果。TimerTask :启动和去取消任务时可以控制,第一次执行任务时可以指定你想要的delay时间。
Tomcat不是用来管理定时任务的,如果没有HTTP请求,Servlet是不会被执行的。建议lz把定期执行的处理做成一个独立的Java程序,用cron执行。
可以在具体的时间点执行一次 可以按照指定间隔时间重复若干次 使用cron表达式触发 , 代表并且,如果10,20 10秒和20秒都指向 ? 只能出现在日期和星期内,代表没有特定的值。
如果是简单的烂代码,写个死循环,获取当前时间,如果时间到了你想要的时候就执行你想要执行的方法。如果要写的好点。
修改数据库可以使用数据库本身的计划任务(job),这种方式最好。第二种是使用程序来做如java的timer和timetask。保证在项目启动的时候启动该计划任务。
javaweb,监听器和定时器(Quartz)互相调控的问题
1、可以通过做监听器(在web.xml中配置监听器),之后监听器里面的方法实现TimeTask 类,之后即可实现定时效果,执行某个程序。
2、引入quartz 依赖 quartz.properties 注意:每一个job执行都是一个新的线程(即使是同一个任务,这个elastic-job不同)但是如果在配置文件quartz.properties中配置的线程消耗完,也还是会陷入阻塞的。
3、延时执行首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。
4、JDK提供了Timer类实现定时执行任务,只要继承该类并覆盖TimerTask方法即可,详细题主可以看下API。另外,Quartz框架也提供了作业调度方法,使用起来相当简单。
java怎么让程序每天晚上12点做定时任务,因为程序是不定时开的,所以要实…
//如果第一次执行定时任务的时间 小于 当前的时间 18 //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。
无非就是时间匹配而已,设置两个线程,一个用于时间匹配,一个用于执行功能。除了定时器,还可以使用concurrent包的ScheduledThreadPoolExecutor,delay设为现在到12点的时间,duration设为24小时。
延时执行 首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。
import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;/ ScheduledExecutorService是从Java SE5的java.util.concurrent里,做为并发工具类被引进的,这是最理想的定时任务实现方式。