问题描述
比如我有一个合同表。有两个字段一个创建时间,到期时间。合同有很多和状态,最终状态是:归档我想在到期时间的前两天如果合同还没有归档,系统就自动提示,改合同还没有处理完毕。请抓紧时间。我是用S2SH框架做的!
解决方案
解决方案二:
用spring做个计划任务监视状态
解决方案三:
引用1楼leehuat的回复:
CSScode用spring做个计划任务监视状态
能不说的详细点!!!!!!!!
解决方案四:
spring有个Quartz可以实现定时任务,你网上搜一下。或者你自己写个线程定时扫描一下数据库表的记录也可以。
解决方案五:
lz参考这个吧,这好歹是培训讲师说的,如果让我说的话,表达的更不清楚。浅谈Spring中使用Quartz来执行计划任务作者:匿名来源:程序员之家发布者:admin时间:2010-01-0710:02:32点击:891下面要和大家分享的是spring中使用Quart来执行计划,通常情况下,你只需要调用特定对象上的一个方法。你可以使用MethodInvokingJobDetailFactoryBean准确的做到这一点:<beanid="methodInvokingJobDetail"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><propertyname="targetObject"><refbean="exampleBusinessObject"/></property><propertyname="targetMethod"><value>doIt</value></property></bean>上面例子将导致exampleBusinessObject中的doIt方法被调用(如下):publicclassBusinessObject{//propertiesandcollaboratorspublicvoiddoIt(){//dotheactualwork}}<beanid="exampleBusinessObject"class="examples.ExampleBusinessObject"/>使用MethodInvokingJobDetailFactoryBean你不需要创建只有一行代码且只调用一个方法的job,你只需要创建真实的业务对象来包装具体的细节的对象。默认情况下,QuartzJobs是无状态的,可能导致jobs之间互相的影响。如果你为相同的JobDetail指定两个触发器,很可能当第一个job完成之前,第二个job就开始了。如果JobDetail对象实现了Stateful接口,就不会发生这样的事情。第二个job将不会在第一个job完成之前开始。为了使得jobs不并发运行,设置MethodInvokingJobDetailFactoryBean中的concurrent标记为false。<beanid="methodInvokingJobDetail"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><propertyname="targetObject"><refbean="exampleBusinessObject"/></property><propertyname="targetMethod"><value>doIt</value></property></bean>注意:默认情况下,jobs在并行的方式下运行。使用triggers和SchedulerFactoryBean来包装任务我们已经创建了jobdetails,jobs。我们回顾了允许你调用特定对象上某一个方法的便捷的bean。当然我们仍需要调度这些jobs。这需要使用triggers和SchedulerFactoryBean来完成。Quartz自带一些可供使用的triggers。Spring提供两个子类triggers,分别为CronTriggerBean和SimpleTriggerBean。Triggers也需要被调度。Spring提供SchedulerFactoryBean来暴露一些属性来设置triggers。SchedulerFactoryBean负责调度那些实际的triggers。两个例子:<beanid="simpleTrigger"class="org.springframework.scheduling.quartz.SimpleTriggerBean"><propertyname="jobDetail"><!--seetheexampleofmethodinvokingjobabove--><refbean="methodInvokingJobDetail"/></property><propertyname="startDelay"><!--10seconds--><value>10000</value></property><propertyname="repeatInterval"><!--repeatevery50seconds--><value>50000</value></property></bean><beanid="cronTrigger"class="org.springframework.scheduling.quartz.CronTriggerBean"><propertyname="jobDetail"><refbean="exampleJob"/></property><propertyname="cronExpression"><!--runeverymorningat6am--><value>06**1</value></property></bean>现在我们创建了两个triggers,其中一个开始延迟10秒以后每50秒运行一次,另一个每天早上6点钟运行。我们需要创建一个SchedulerFactoryBean来最终实现上述的一切:<beanclass="org.springframework.scheduling.quartz.SchedulerFactoryBean"><propertyname="triggers"><list><reflocal="cronTrigger"/><reflocal="simpleTrigger"/></list></property></bean>更多的一些属性你可以通过SchedulerFactoryBean来设置,例如jobdetails使用的Calendars,用来订制Quartz的一些属性以及其它。你可以看相应的JavaDOC(http://www.springframewor......z/SchedulerFactoryBean.html)来了解进一步的信息。附:cronExpression配置说明字段允许值允许的特殊字符秒0-59,-*/分0-59,-*/小时0-23,-*/日期1-31,-*?/LWC月份1-12或者JAN-DEC,-*/星期1-7或者SUN-SAT,-*?/LC#年(可选)留空,1970-2099,-*/转载请注明出处:程序员之家http://www.sunxin.org
解决方案六:
该回复于2010-11-29 10:43:33被版主删除
解决方案七:
该回复于2010-11-29 09:41:29被版主删除
解决方案八:
该回复于2010-11-29 09:41:56被版主删除
解决方案九:
四楼的说的很清楚了。。。你就是用spring的定时器就可以了。。这个觉得能够实现你要的效果。。。你可以设定定时器每天都跑一下。。检查一下是否有要签订的合同。。。
解决方案十:
该回复于2010-11-29 13:24:39被版主删除
解决方案十一:
4楼正解,Cron正解
解决方案十二:
该回复于2010-12-03 09:47:07被版主删除
解决方案十三:
1、用java自己的定时器Timer来做2、用开源定时器Quartz来做
解决方案十四:
引用12楼dyllove98的回复:
1、用java自己的定时器Timer来做2、用开源定时器Quartz来做
+1
解决方案十五:
系统就自动提示,这个功能中的系统,指的是什么,不是太清楚啊。