jsp中怎么让服务器定时执行一些操作 我想在每周凌晨2点的时后让服务器自动插入一条数据到数据库请问怎么执行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你用的什么框架 ssh 还是什么 一、下载quartz下载地址:http://www.opensymphony.com/quartz/download.action二、整合Spring与quartz1.quartz需要添加quartz-1.6.x.jar包spring需要添加spring-context-support.jar包我测试的环境有WebLogic 9.2,Tomcat 5.5。WebLogic 9.2可以直接使用,Tomcat 5.5 还需要添加javaee.jar包到Tomcat Home\common\lib目录下才能使用2.添加完包以后,编写对应的spring配置文件,需要添加的内容为<bean id="quartzJob" class="com.test.QuartzJob"></bean> <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="quartzJob" /> </property> <property name="targetMethod"> <value>work</value><!--这里的work是你的操作类 这里面可以调用dao中的insert进行插入--> </property> </bean> <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobtask" /> </property> <property name="cronExpression"> <value>0 0 2 * * ?</value><!--每天晚上两点执行work中的任务--> </property> </bean> <bean id="startQuertz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="doTime" /> </list> </property> </bean>配置文件的意思是指,作业调度需要执行类com.test.QuartzJob里的work方法,执行的时间使用的是Cron表达式,0 0 2 * * ? 是指在每天晚上2点钟执行该作业。下面编写对应的QuartzJob类:public class QuartzJob { public void work() {// 这里编写需要执行的代码 }} Quartz 或者timer都可以实现。 时间设置说明:一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。按顺序依次为 1.秒(0~59) 2.分钟(0~59) 3.小时(0~23) 4.天(月)(0~31,但是你需要考虑你月的天数) 5.月(0~11) 6.天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(1970-2099)其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?. 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点0 0/30 9-17 * * ??? 朝九晚五工作时间内每半小时0 0 2 ? * SUN 表示每个星期日晚上2点 有些子表达式能包含一些范围或列表 例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT” “*”字符代表所有可能的值 因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天 “/”字符用来指定数值的增量 例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟 ;在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样 “?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值 当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?” “L” 字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写 但是它在两个子表达式里的含义是不同的。 在天(月)子表达式中,“L”表示一个月的最后一天 ,在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT 如果在“L”前有具体的内容,它就具有其他的含义了 例如:“6L”表示这个月的倒数第6天,“FRIL”表示这个月的最后一个星期五 注意:在使用“L”参数时,不要指定列表或范围,因为这会导致问题 不用这么麻烦的,java自带的都有一个Timer类,你直接在API中查找它的方法,初始化一个Timer类,然后有一个scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 安排指定的任务在指定的时间开始进行重复的固定速率执行。调用就可以了 这个不求不需要用 Quartz ,Quartz是用来处理复杂度很高的 定时需求的,这个直接用jdk 的 Timer处理就行了 上面的有些复杂了,有些杀鸡用牛刀的嫌疑。系统级别的计划任务 + j2se数据插入 也是可以的。 毕竟一周一次,不推荐各类虚拟机级别的Timer,耗资源。 菜鸟求救下载中文名文件出现乱码报错的问题!!! Ext.grid.GridPanel动态列的设置 struts 高手如内,请教关于<html:file>的菜鸟级问题 问个很菜鸟的问题 IIS 重定向到TOMCAT的访问权限为什么需要ADMIN组 >>>用JXL读取EXCEL表后,工作簿对象不能释放,怎么解决<<< 关于access数据库的问题 如何再网页李现实一个日期,急给分 Java Servlet 移植的问题,请高手进来! 关于CAS单点登录后同步退出的问题 JS 动态删除多行问题 继续求教struts2 <s:datetimepicker>标签问题
<bean id="jobtask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="quartzJob" />
</property>
<property name="targetMethod">
<value>work</value><!--这里的work是你的操作类 这里面可以调用dao中的insert进行插入-->
</property>
</bean>
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask" />
</property>
<property name="cronExpression">
<value>0 0 2 * * ?</value><!--每天晚上两点执行work中的任务-->
</property>
</bean>
<bean id="startQuertz"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime" />
</list>
</property>
</bean>
配置文件的意思是指,作业调度需要执行类com.test.QuartzJob里的work方法,执行的时间使用的是Cron表达式,0 0 2 * * ? 是指在每天晚上2点钟执行该作业。下面编写对应的QuartzJob类:
public class QuartzJob {
public void work()
{
// 这里编写需要执行的代码
}
}
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
按顺序依次为
1.秒(0~59)
2.分钟(0~59)
3.小时(0~23)
4.天(月)(0~31,但是你需要考虑你月的天数)
5.月(0~11)
6.天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
7.年份(1970-2099)其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。
由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?. 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ??? 朝九晚五工作时间内每半小时
0 0 2 ? * SUN 表示每个星期日晚上2点 有些子表达式能包含一些范围或列表
例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT” “*”字符代表所有可能的值
因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天 “/”字符用来指定数值的增量
例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟 ;
在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样 “?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值
当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”
“L” 字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写 但是它在两个子表达式里的含义是不同的。 在天(月)子表达式中,“L”表示一个月的最后一天 ,
在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT 如果在“L”前有具体的内容,它就具有其他的含义了 例如:“6L”表示这个月的倒数第6天,“FRIL”表示这个月的最后一个星期五 注意:在使用“L”参数时,不要指定列表或范围,因为这会导致问题
scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 安排指定的任务在指定的时间开始进行重复的固定速率执行。
调用就可以了
这个直接用jdk 的 Timer处理就行了