如何停止使用 spring 任务安排的作业

2023-12-20

我已经实现了一个示例 spring 计划任务,其 applicationContext 如下,

<task:scheduled-tasks scheduler="myScheduler">
    <task:scheduled ref="cron" method="show" cron="0/10 * * * * ?"/>
    <task:scheduled ref="cron" method="show2" cron="0/15 * * * * ?"/>
</task:scheduled-tasks>

<task:scheduler id="myScheduler" pool-size="10"/>

我怎样才能停止这个调度方法?


注入ThreadPoolTaskScheduler到另一个bean中,并调用shutdown()。如果这不可接受,您可以配置cronbean 接受一个标志。例如:

public class Job() {
    private final AtomicBoolean stop = new AtomicBoolean(false);

    public void show() {
        if (stop.get()) {
            return;
        }
        ...
    }

    public void stop() {
        stop.set(true);
    }
}

请注意,这不会从调度程序中删除该作业。防止这种情况的唯一方法是获取对ScheduledFuture并打电话cancel().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何停止使用 spring 任务安排的作业 的相关文章

随机推荐