lzefforts
2011-01-14 15:13
浏览 382
已采纳

spring 3中的任务调度,怎样手动开启

spring 3中有个任务调度的,现在我用的是这种方式:
[code="xml"]task:scheduled-tasks


/task:scheduled-tasks[/code]
,这样在启动tomcat解析xml时,这个test函数就开始执行了。我现在想通过手动的方式来开启任务调度,有什么解决办法(用spring3中的任务调度),哪位能帮帮我,谢谢了

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 王启军 2011-01-17 10:06
    已采纳

    我告诉你一个方法,直接找quartz的相关用法

    手动没问题

    不要写在配置文件中,直接新建任务调度的方法即可

        // 统一设置执行时间
        jobDataMap.put(Constant.JOB_DATA_EXCUTE_TIME, time);
    
        SimpleTrigger trigger = new SimpleTrigger("SimpleTrigger_" + jobKey,
                Scheduler.DEFAULT_GROUP, time);
        jobDetail.setJobDataMap(new JobDataMap(jobDataMap));
    
    已采纳该答案
    打赏 评论
  • 王启军 2011-01-14 17:04

    手动无需任务,直接调用方法即可

    动态修改任务调度,可以采用手动设置的方式,
    首先你要明白,spring用的是quartz,如果你单独用quartz的时候。。。。

    打赏 评论
  • weixin_42538527 2011-01-15 17:56

    直接控制任务调度比较困难。
    有个间接控制的方法;
    数据库中存放一个是否开启调度的标志字段,在调度的方法里先查询该标志是否已经开启,手动控制只需要控制该标志字段的值就OK。
    还有个就是不用数据库,将是否开启调度的标志写在properties文件中,同理,在调度方法里先读取该properties里的值,手动控制只需要修改properties的值。

    打赏 评论
  • weixin_42538527 2011-01-17 10:34

    你在test方法中加入判断
    [code="java"]
    public void test(){
    checkStatus();//这里去检查手动任务是否是开启状态,具体是从数据库还是properties文件中读取由你自己决定,如果取得未开启,return掉就OK了

    //下面是你的操作
    }
    [/code]

    打赏 评论
  • wf6916311 2012-05-29 16:35

    查询该标志是否已经 :cry: :cry:

    打赏 评论

相关推荐 更多相似问题