【问题标题】:Admin Process for 12-factor in JavaJava 12 因素的管理流程
【发布时间】:2021-08-14 05:04:09
【问题描述】:

12-Factor 博客建议应用程序应该“将管理/管理任务作为一次性流程运行”。

这在 Java/Spring-boot 应用程序的上下文中意味着什么?我可以举个例子吗?

https://12factor.net/admin-processes

【问题讨论】:

    标签: java spring-boot 12factor


    【解决方案1】:

    网站不建议这样做。它说开发人员可能想要这样做,并且如果他们这样做了,他们应该应用与其他代码相同的标准

    一次性管理进程应在与应用的常规长期运行进程相同的环境中运行。它们针对某个版本运行,使用与针对该版本运行的任何进程相同的代码库和配置。管理员代码必须与应用程序代码一起提供以避免同步问题。

    以我的应用程序为例:用户可以发送邀请,收件人必须在 7 天内回复,否则邀请将过期。这是通过在邀请上设置时间戳并执行等效于DELETE FROM Invitations WHERE expiration < NOW() 的数据库查询来实现的。

    现在,我们可以让某人登录数据库并定期执行此查询。然而,这个“清理”操作被内置到应用程序中,位于/internal/admin/cleanInvitations 之类的 URL 中,并且该端点由外部 cron 作业执行。调度在主应用程序之外,但所有数据库配置、连接和逻辑都包含在我们的主要业务逻辑旁边。

    【讨论】:

    • 你能举个例子说明他们在谈论什么类型的管理流程吗?
    • @Saum 具体示例已添加。
    • 知道了,谢谢@chrylis -cautiouslyoptimistic 该博客提到了 REPL - 我发现有点难以理解,至于我在哪里使用类似的东西。
    • @Saum 老实说,该部分中的 REPL cmets 并没有清晰地连接到上下文。 REPL 交互固有地不能受到与业务代码相同的控制。它们对探索很有用,但不应在实验之外使用。
    • 是的 .. 对于探索,它可以是很好的工具。根据我的经验,我仍然会谨慎地在现场制作中做类似的事情。
    猜你喜欢
    • 2023-03-08
    • 2015-04-04
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多