wyang1991
2011-07-26 22:16
浏览 219
已采纳

WEB系统数据库字段在一段时间后自动修改的问题(SSH)

[size=large]现在有一个类似工作流的系统,但是没有使用jbpm框架,SSH2开发环境。

问题是这样的:

有一个请求request(id,status),某角色的用户将次数据库中存放的某一id的request的status修改为某一个值时,比如open,则从修改时开始计时,若没有其他用户将它的状态改为其他值,那么24小时后,要让此request的status字段自动变为另一个值,并不让任何用户再修改。
请问如何实现?

我的一个思路是在status被修改成open时,启动一个线程开始计时,若有人修改了它,则取消计时,若没有人修改,那么24小时后修改它。
有没有哪位高人有更好的实现方法。先谢过了![/size]

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • oyj7454103 2011-07-30 21:38
    已采纳

    具体的业务逻辑还是你自己比较清楚!
    一般的做法可能大概分两种方式吧:
    1.0 Spring定时任务(Quartz,timer) ,或者 thread 一类定时去扫描那个字段的值!最好有一个【最后的修改时间字段】!然后做不同的修改!
    至于具体的怎么去修改,触发 应该不难吧! 或者直接用thread 也比较好控制!具体的代码只能结合你自己的代码写咯!
    2.0 触发式刷新!就是每次读那个字段的时候 判断下 【前提是有个最后的刷新时间】
    然后做一些处理!

    大同小异吧! 个人感觉上面那些提议都是可以的!只要你理解了就好办!

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • xutao5641745 2011-07-26 22:56

    我推荐用 Spring定时任务。。。。

    评论
    解决 无用
    打赏 举报
  • xutao5641745 2011-07-26 22:59

    那建议你用 任务调度框架Quartz,可定制性强多了

    任务调度框架Quartz文档
    http://blog.csdn.net/alex197963/archive/2009/08/06/4417995.aspx

    评论
    解决 无用
    打赏 举报
  • jszhan 2011-07-26 23:52

    1、可以通过程序中的任务调度(如Quartz),进行定时去扫描符合条件的进行修改

    2、可以使用数据库的任务调度(如oracle的job),进行定时去扫描符合条件的进行修改

    评论
    解决 无用
    打赏 举报
  • jszhan 2011-07-29 00:04

    mysql 几乎没用过,不熟悉这个不能发表意见。

    你可以使用Spring定时任务进行处理,定时任务其实就是规定什么时间去执行什么代码,你可以在代码进行处理,定时执行的代码需要怎么处理业务逻辑这个由你自己设计了。
    对于Spring定时任务的配置其实很简单,具体配置网上搜索一下就一堆了。

    评论
    解决 无用
    打赏 举报
  • jiangnan2112 2011-07-30 14:17

    个人觉得你还线程好些,如果时间要求很准的话要任务调度要执行的频率太高,不高的话时间不好把握,不划算!

    评论
    解决 无用
    打赏 举报
  • oyj7454103 2011-07-31 13:56

    ok 你得到了! :idea:

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题