Java 中 12 因素的管理流程

Admin Process for 12-factor in Java

12 因素博客建议应用程序应该 'Run admin/management tasks as one-off processes'。

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

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

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

One-off admin processes should be run in an identical environment as the regular long-running processes of the app. They run against a release, using the same codebase and config as any process run against that release. Admin code must ship with application code to avoid synchronization issues.

以我的应用为例:用户可以发送 邀请 ,收件人必须在 7 天内回复,否则邀请将过期。这是通过在邀请上添加时间戳并执行相当于 DELETE FROM Invitations WHERE expiration < NOW().

的数据库查询来实现的

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