在Spring Boot中,如何从命令行运行诸如Jenkins的报告之类的长期运行任务?我正在寻找类似于Ruby on Rails Rake任务的内容。 Rake任务在与Web服务器相同的应用程序上下文中从命令行执行代码,以便您可以重复使用代码。
我有一个报告,查询需要30多个秒才能运行,并生成一个我想邮寄的CSV文件。我希望它与cron或Jenkins一起每周自动运行。
答案 0 :(得分:0)
最近我遇到了类似的问题,我想出了以下三种可能的解决方案:
答案 1 :(得分:0)
我破解了一个解决方案。欢迎提出建议。
package com.example.tasks;
@Component
public class WeeklyReport implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
Arrays.asList(args).stream().forEach(a -> System.out.println(a));
if (!(args.length > 0 && args[0].equals("-task report:weekly"))) return;
System.out.println("weekly report");
System.exit(0);
}
并通过“ cron”作业运行它
$ mvn spring-boot:run -Drun.arguments="-task report:weekly"
https://www.baeldung.com/spring-boot-command-line-arguments
https://therealdanvega.com/blog/2017/04/07/spring-boot-command-line-runner