如何将Params传递给ScheduledMethodRunnable方法

时间:2017-05-18 11:48:16

标签: java spring scheduled-tasks

我正在尝试构建一个创建预定作业的方法。这些工作称为URL。

public synchronized void scheduleNewJob(int jobNr, long newRate) throws NoSuchMethodException {

    ScheduledFuture job = jobsMap.get(jobNr);

    if (job != null) {// job was already scheduled, we have to cancel
                        // it
        job.cancel(true);
    }
    // reschedule the same method with a new rate
    final String methodName = "callApi";

    Method method = new ApiCallerHelper().getClass().getMethod(methodName, String.class);

    job = taskScheduler
            .scheduleAtFixedRate(new ScheduledMethodRunnable(targetClass, method), newRate);

要做到这一点,我需要将URI参数传递给我的方法(callApi)。

有可能这样做吗?或者更好的方式?

1 个答案:

答案 0 :(得分:1)

根据ScheduledMethodRunnable上的Spring documentation

  

...意味着用于处理无法预定的方法。

我猜你可以使用参数化构造函数创建一个类包装器。用其中的预定方法包装一个类。并且从调度方法引用param,而方法本身仍然是no-arg和void-returns。