项目要求是系统每年年底自动检测距当前时间的6个月某个字段值为某个状态时,自动改变其他字段的值。看了点资料,但具体实现还没思路呢。请各位高手献上代码。疯狂代码吧。多谢啦!

解决方案 »

  1.   

    写个线程在后台定期执行一遍,判断是否在年底,判断修改动作是否已经执行完成,注意该线程一年只能执行一次,并且如果JVM虚拟机重新启动,还需要判断修改动作是否已经做过,如果已经做过,就不要继续执行.
      

  2.   

    谢谢你提供的思路。我这样做可以吗。大概做法是:在进入登录界面——》用jsp判断时间---》启动java类中的线程
      

  3.   

    项目中用到spring了么?可以用spring 中的定时功能。
      

  4.   

    没有用spring. 用java的定时器可以吧。我知道些方法,但具体的实现还不知道。要是哪位知道,请给我完成的实现代码吧。我也还在自己试验呢。谢谢各位啦
      

  5.   

    直接在数据库中建立JOB,调用存储过程,应该是简单的了
    这样你可以想什么时间检测就什么时间检测
    然后在存储过程中查询出那个字段的值进行判断,若是满足条件
    则进行下一步更改字段操作,否则存储过程执行结束,等待下一次激发~~
      

  6.   

    数据库触发器可以解决,QUARTZ也可以,实例随硬盘一起牺牲了,你自己找找吧.JDK的TIMERTARSK也可以,就是相对QUARTZ差些
      

  7.   

    是建模吗 没建过呢。我们用的数据库是pgAdmin3。听了这么多意见,我个人现在比较倾向存储过程啦。哪位高手能给我完整的代码吗?或者操作步骤。顺便给我讲讲job的原理,优点。谢谢啦。还有存储过程是怎么调用的?
      

  8.   

    很早之前写了一个JOB定时调用存储过程的,不过那个是定时建立删除表分区的
    你只要将存储过程里的改为你想要的那些查询,判断,修改即可,这样还不会与你的程序耦合
    即使你的程序恰好在日期快到的时候当掉了,也一样会在库中执行,否则如果敢上那个时间系统
    崩溃,除非你改变定时任务的执行时间,然后将系统重新发布才能得到执行,要不然如果是一年执行一次的话
    这次的只能到明年执行了~~~参见:http://blog.csdn.net/imasmallbird/archive/2008/11/20/3340547.aspx