急!求指导!超时提醒机制! 系统使用SSH2架构,每条记录都有一个状态位,若某条记录处于某个状态过长时间(超时),则需进行某些操作,请问这种超时提醒机制应该如何实现? 跪求各位大神指导!谢谢~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用timer定时器 或者 Quartz - 作业调度框架 具体的自己百度谷歌 之前用Quartz做过定时清空数据库某个字段的功能,每天固定某个时间执行。这里并非固定时间执行,而是从状态位修改成功后开始计算,请问应该在哪里判断状态超时然后再执行动作?状态位修改在database层实现。 Quartz 也是可以用来做作业调度的 从状态位修改成功后绑定一个调度作业并设定一个时间长度(超时时间长度)当到达这个时间后就会调用这个作业 这个和java的定时器差不多 这个循环检测是用quartz的触发器实现吗?是不是要把状态记入session中,每次检测时进行比较? 我的job实现类会发一封邮件,2分钟执行一次,结果邮件一直连续不断的发送,这个不是应该执行一次就结束2分钟后再次执行吗,为什么会出现这种情况?//job实现类 public class MyJob implements Job { ... ... public void execute(JobExecutionContext context) { // TODO Auto-generated method stub i++; JobDetail jobDetail = context.getJobDetail(); String jobName = jobDetail.getName(); JobDataMap data = jobDetail.getJobDataMap(); ... ... sms.sendHtmlMail(mailInfo); ... ...//调用job调度处理类MyJob job = new MyJob();MySchedulerManage.startUp(... ..., job, "* */2 * * * ?",... ...);//每2分钟系统中还用Quartz实现定时清空数据库某个字段的功能,Quartz的配置是在Spring中完成的,会不会是这个配置与前面的有冲突之类的?//quartz-config.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><!--Quartz的配置--> <!-- 要调用的工作类 --> <bean id="quartzJob" class="basicdata.QuartzJob"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!-- 定义调用对象和调用对象的方法 --> <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 调用的类 --> <property name="targetObject"> <ref bean="quartzJob"/> </property> <!-- 调用类中的方法 --> <property name="targetMethod"> <value>work</value> </property> </bean> <!-- 定义触发时间 --> <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobtask"/> </property> <!-- cron表达式 --> <property name="cronExpression"> <value>0 0 0 * * ?</value><!-- 每天固定时间触发 --> </property> </bean> <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="doTime"/> </list> </property> </bean> </beans>//QuartzJob.javapublic class QuartzJob extends HibernateDaoSupport { public void work() { ... ... }} 这个小地方解决,是我cron表达式写错了。 JSP查询数据正常,无法插入数据,也不提示错误。求解~~ java中怎么把文件上传到服务器的指定路径 求助:上传文件到MySQl出现乱码 使用HQL语句将结果作为pojo对象的错误问题,请大家指点,谢谢啦! iText解决问题的方案 用js+ajax 验证码的验证的小问题,在线等 难道这是中国人做的???7456 switch语句的问题 从上页得到的String[] strSystemNo,如何在点按钮时提交到下页 为什么用不了bean? structs 校验有错误 B2C的电子商务网站产品管理那块表是怎么设计的
之前用Quartz做过定时清空数据库某个字段的功能,每天固定某个时间执行。
这里并非固定时间执行,而是从状态位修改成功后开始计算,请问应该在哪里判断状态超时然后再执行动作?状态位修改在database层实现。
Quartz 也是可以用来做作业调度的 从状态位修改成功后绑定一个调度作业并设定一个时间长度(超时时间长度)当到达这个时间后就会调用这个作业 这个和java的定时器差不多
这个循环检测是用quartz的触发器实现吗?
是不是要把状态记入session中,每次检测时进行比较?
我的job实现类会发一封邮件,2分钟执行一次,结果邮件一直连续不断的发送,这个不是应该执行一次就结束2分钟后再次执行吗,为什么会出现这种情况?
//job实现类
public class MyJob implements Job {
... ...
public void execute(JobExecutionContext context) {
// TODO Auto-generated method stub
i++;
JobDetail jobDetail = context.getJobDetail();
String jobName = jobDetail.getName();
JobDataMap data = jobDetail.getJobDataMap();
... ...
sms.sendHtmlMail(mailInfo);
... ...//调用job调度处理类
MyJob job = new MyJob();
MySchedulerManage.startUp(... ..., job, "* */2 * * * ?",... ...);//每2分钟系统中还用Quartz实现定时清空数据库某个字段的功能,Quartz的配置是在Spring中完成的,会不会是这个配置与前面的有冲突之类的?
//quartz-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><!--Quartz的配置
-->
<!-- 要调用的工作类 -->
<bean id="quartzJob" class="basicdata.QuartzJob">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="quartzJob"/>
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>work</value>
</property>
</bean>
<!-- 定义触发时间 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask"/>
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<value>0 0 0 * * ?</value><!-- 每天固定时间触发 -->
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime"/>
</list>
</property>
</bean>
</beans>//QuartzJob.java
public class QuartzJob extends HibernateDaoSupport {
public void work()
{
... ...
}
}
这个小地方解决,是我cron表达式写错了。