JFinal

登录 注册

计划任务的改造求助

blob.png

请教这个计划最终实现的场景是让一个类按计划被调用。

而我现在想做的场景是 :可以创建不同的计划调用的是同一个类,只是给类传递不同的参数,改怎么实现

评论

  • 11-21 20:27
    其实也就是如果这里的实现类能将参数传进去就好了 不知道怎么传
  • 11-21 20:34
    竟然解决了,哈哈 分享下方案
    重写 QuartzPlugin

    JobDetail job = JobBuilder.newJob(clazz)
    .withIdentity(jobClassName, jobClassName) // name "myJob", group "group1"
    .usingJobData("jobSays", "Hello World!")
    .usingJobData("myFloatValue", 3.141f)
    .build();

    //usingJobData就是传入参数
    然后在执行的类里面
    protected void process(JobExecutionContext context) {

    JobKey key = context.getJobDetail().getKey();
    JobDataMap dataMap = context.getJobDetail().getJobDataMap();
    String jobSays = dataMap.getString("jobSays");
    float myFloatValue = dataMap.getFloat("myFloatValue");
    System.err.println("每1秒:::"+"Instance " + key + " of DumbJob says: " + jobSays + ", and val is: " + myFloatValue);

    }
    就能取到了
  • 11-21 21:01
    还是不行,同一个类竟然不能创建多个job 怎么办怎么办
  • 11-22 01:30
    整那么复杂干嘛,这不跟多个Controller 调用 一个公共的Biz 一回事吗? 你提取一个Biz就行了
  • 11-22 01:42
    后续版本会进行改造,支持自定义配置参数
  • 11-25 17:33
    @Jieven 没明白一个JobDetail 貌似只能支持一个class类,而我的需求是让客户自定义任务,但任务都是同样的操作,传不同的参数
  • 发送