您如何在Spring Boot中分隔角色?(Web与Scheduler等)。

凯代尔

我来自(主要是)Python Django / Celery背景,并从Spring Boot开始。

我很难理解您如何分隔角色。

例如,当有Django / Celery项目时,我一方面将Web后端启动为gunicorn,另一方面将工作人员以后端启动celery(因此,不同的命令,但指向相同的代码)。

但是在Spring Boot上,您只有一个入口点,一旦注入了调度程序,就将开始处理作业。

将Django / Celery应用程序中的内容分开的正确方法是什么?我是否应该将几乎所有代码都放在一个库中,然后创建2个最终应用程序,一个将安装@DispatcherServlet,另一个将安装@EnableScheduling,还是在运行时注入某种配置?

Michael Ouyang

我认为,如果“ Web”和“调度程序”都是应用程序中的重要功能,那么只要您创建一个整体的应用程序,我们就不需要将它们分开。

因为您使用的是Spring Boot,所以将自动注入并配置@DispatcherServlet和Web应用程序所需的所有其他Web组件。您唯一要做的就是创建一个用@Controller或@RestController注释的类,并在这些类中设置@RequestMapping方法。

调度程序怎么样?您需要先在@Configuration类之一中添加@EnableScheduling,然后在调度程序包中创建Scheduler类,如下面的代码示例所示。

您可以使用cron属性来设置指定执行时间,就像Linux crontab一样。仅在cron时间到时才开始处理作业。

@Component
public class PlatformScheduler {

    @Autowired
    private BatchService batchService;
   
    @Scheduled(cron = "0 0 12 * * *")
    public void dailyInitialize() {

        clearCompletedBatches();
        queryBatchesToRunToday();

    }


    @Scheduled(fixedRate = 10000, initialDelay = 10000)
    private void harvestCompletedBatches() {

        batchService.harvestCompletedBatches();

    }

    @Scheduled(fixedRate = 10000, initialDelay = 10000)
    private void executeWaitingBatches() {

        batchService.executeWaitingBatches(new DateTime());

    }

}

最简单的项目层次结构如下所示,“ Web”和“调度程序”可以安全地位于同一项目中,并共享相同的@Service组件而不会造成损害。

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 for 中分隔 RadioList?

来自分类Dev

您如何在Android应用程序中分层imageViews?

来自分类Dev

如何在Firebase中分离用户角色?

来自分类Dev

如何在javafx中分隔我的GUI?

来自分类Dev

如何在git分支中分隔文件

来自分类Dev

如何在php中分隔项目列表?

来自分类Dev

如何在JFrame中分隔面板以分隔类

来自分类Dev

如何在Spring Boot中跟踪唯一的Web请求?

来自分类Dev

如何在Spring-boot中添加静态Web内容

来自分类Dev

如何在委托中分配默认用户角色?

来自分类Dev

如何在linux中分离/boot分区?

来自分类Dev

您如何告诉Spring Boot将嵌入式Tomcat的访问日志发送到stdout?

来自分类Dev

如何在Spring Boot中禁用ErrorPageFilter?

来自分类Dev

如何在Spring Boot中使用CommonsMultipartResolver

来自分类Dev

如何在Spring Boot中添加UrlRewriteFilter

来自分类Dev

如何在spring boot中查询关系?

来自分类Dev

如何在 Spring Boot 上生成 GeoJson?

来自分类Dev

如何在 Spring Boot 上返回 JSONObject?

来自分类Dev

如何在min()谓词序言中分隔值

来自分类Dev

如何在C#中分隔名字和姓氏?

来自分类Dev

如何在SQLite中分割逗号分隔的值?

来自分类Dev

如何在R中给定文本中分隔单词?

来自分类Dev

如何在php中分隔日期和时间?

来自分类Dev

如何在Swift中分隔NSDate()的日期和时间组件?

来自分类Dev

如何在熊猫中分隔列名称及其值?

来自分类Dev

如何在Google图表的区域图中分隔日期

来自分类Dev

如何在R的列中分隔2个数字

来自分类Dev

如何在参数中分隔单词(discord.js)

来自分类Dev

如何在字符串中分隔SQL变量