当前位置: 首页 > 知识库问答 >
问题:

获取所有计划的crons列表

王泓
2023-03-14

我有一个springframework启动应用程序,在这个应用程序上我有很多定时cron,现在我正在创建一个rest控制器(GET),我想在其中获取项目上所有定时cron的列表(元数据)

调度pplication.java

@SpringBootApplication
@EnableScheduling
@EnableAutoConfiguration
public class SchedulerApplication {
  public static void main(String[] args) {
    SpringApplication.run(SchedulerApplication.class, args);
  }

1班。JAVA

@Scheduled(cron = "${doSomething1}")
  public void execute() {
    ....
  }

2班。JAVA

@Scheduled(cron = "${doSomething2}")
  public void execute() {
    ....
  }

应用yml

doSomething1: 0 45 2 * * ? 
doSomething2: 0 5 9 ? * * 

这是我的Rest控制器


@Controller
@RequestMapping(value = "api/v1/scheduler")
public class SchedulerController {

  @Autowired
  private SchedulerService schedulerService;

  @RequestMapping(value = "/crons", method = RequestMethod.GET, produces = APPLICATION_JSON_VALUE)
  public ResponseBody getAllAvailableCrons() {
    return schedulerService.getAllAvailableCrons();
  }

}
@Service
public class SchedulerService {

  public ResponseBody getAllAvailableCrons() {
    
  }
}

共有1个答案

齐昊
2023-03-14

您可以使用@ConfigurationProperties从应用程序中获取它们。yml并在服务中自动连接它们(使用前缀将使其更干净):

应用yml

crons:
   doSomething1: 0 45 2 * * ? 
   doSomething2: 0 5 9 ? * * 

配置属性:

@ConfigurationProperties(prefix = "crons") 
public class CronProperties { 

private Map<String,String>> crons;  
    // standard getters and setters 
}

服务:

@Service
public class SchedulerService {

@Autowired
private CronProperties cronProperties

public ResponseBody getAllAvailableCrons() {
    // use cronProperties.getCrons()
}
 类似资料:
  • 问题内容: 获取Oracle中所有表的列表? 问题答案: 假设您有权访问DBA_TABLES数据字典视图。如果您没有这些特权但需要它们,则可以请求DBA显式授予您对该表的特权,或者请求DBA授予您该SELECT ANY DICTIONARY特权或SELECT_CATALOG_ROLE角色(这两者都将允许您查询任何数据字典表) )。当然,您可能希望排除某些模式,例如SYS和模式,SYSTEM而这些模

  • 问题内容: 是否有一种快速的方法可以从中的所有表获取所有列名,而不必列出所有表? 问题答案:

  • 问题内容: 我想学习如何从MS SQL数据库中获取具有标识列的所有表的列表。 问题答案:

  • 问题内容: 给定一个PHP字符串数组,例如: 如何生成此数组元素的所有可能排列?即: 问题答案: function pc_permute($items, $perms = array()) { if (empty($items)) { echo join(‘ ‘, $perms) . “ “; } else { for ($i = count($items) - 1; $i >= 0; –$i)

  • 我有一个FutureBuilder(很高兴加载)从Firebase获取我的DocumentSnapshot列表,但问题是如果我推送/弹出屏幕,它会一遍又一遍地重建它。为了解决这个问题,我最终将它放在了上,但我有一个问题,我有时无法从中获取所有文档。 我有一个按钮可以启用国家/地区筛选和禁用,每次按下它几乎都会立即显示我的文档,例如,我总共筛选了11个国家/地区,筛选了5个国家/地区,但有时我不会全

  • 问题内容: 我有一个对象列表,其中每个对象返回。我如何使用Java 8流仅获得一个? 类具有以下方法; 我有 我正在尝试的是 但是上面的行没有返回 ,而是 我不想要的。 问题答案: 您应该用来从包含在主列表中每个对象中的列表中创建一个列表。请检查; 该调用适用于列表中包含with 的情况,因为这将导致下一行,因此我们应该将其过滤掉。还有其他方法可以实现这一点; -- -- 您可以按如下方式包含来自