java - 如何让任务x在计划任务y之后运行

标签 java spring scheduled-tasks

在我的场景中,我需要安排一系列任务。例如任务 a、b 和 c 应该在 1 点钟开始运行,但按照我插入它们的顺序运行。任务 a 应在 1 点开始,任务 b 应在任务 a 完成后开始(无论何时)。任务 c 也仅在任务 b 完成后才开始。

我希望 springs Taskscheduler 可以只安排可运行列表,但我只能安排可运行:

taskScheduler.schedule(task, cronTrigger()));

我怎样才能做这样的事情:

taskScheduler.schedule(taskList, cronTrigger()));

有什么想法吗?

最佳答案

一个合理的方法可能是创建一个运行 Runnable 列表的 Runnable 的基本实现,然后将其安排为您的任务,例如:

public class RunnableList implements Runnable {
    private final List<Runnable> delegates;

    public RunnableList(List<Runnable> delegates) {
        this.delegates = new ArrayList<Runnable>(delegates);
    }

    @Override
    public void run() {
        for (Runnable job : delegates) {
            job.run();
        }
    }
}

关于java - 如何让任务x在计划任务y之后运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877779/

相关文章:

java - 如何在 Android KitKat (4.4) 中发送彩信?

java - 为什么 Spring Data 存储库上的 getOne(...) 不会抛出 EntityNotFoundException?

windows - 每天运行任务计划程序两次,但不是每小时运行一次

interface - 当可调用是 Clojure 函数时,从 ScheduledFutureTask 获取 nil 而不是返回值

c# - 无法为 java 和 c# (winrt) 获得相同的 hmac_sha1 结果

java - 如何获取拥有对象锁的线程的详细信息

Java:有什么方法可以从字节数组中获取 ZipFile (或任何具有直接 getEntry 方法的内容)?

java - 如何在@Async void 方法中断言异常?

java - Spring BasicAuthenticationFilter 和 UsernamePasswordAuthenticationFilter 与实际应用程序位于不同的服务器上

python - 如何安排每月 1 号运行的 Celery 任务?