gpt4 book ai didi

java - Spring,后台执行或按需执行

转载 作者:行者123 更新时间:2023-11-29 03:58:48 24 4
gpt4 key购买 nike

我有一个 spring 应用程序,它使用 org.springframework.scheduling.quartz.SimpleTriggerBean 定期安排方法的执行。

有时,我想“按需”调用相同的方法。它将由 GUI 上的操作触发。由于我要执行的方法需要几秒钟,所以我不想在执行完成之前阻止用户 GUI。此外,我想协调“按需”执行与后台线程(互斥)。

这是一种方法:

  1. 创建一个名为 Manager 的 Bean使用 TaskExecutor 来安排任务。经理有一个方法Manager.scheduleTask()
  2. 两者背景和“点播”线程将调用相同的方法经理 (Manager.scheduleTask)
  3. 任务同步运行确保只有一个任务的方法正在运行。

我正在寻找更聪明/更清洁的解决方案。

最佳答案

如果您使用 Spring 3.0 或更新版本,请查看 Task Execution and Scheduling引用文档的一部分。

说明有两个注解:

  • @Scheduled
  • @Timer

解决方案至少是一样的:有 3 种方法:

private void  doIt() {...}

@Scheduled(cron="0 0 0 * * MON-FRI")
public void doItEveryDay() {doIt();}

@Async
public void doItOnDemand() {doIt();}

但是有了这些注解,就会很容易阅读,也很容易理解为什么会有三种方法。

关于java - Spring,后台执行或按需执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com