ServiceStack 中的后台服务

Background service in ServiceStack

我有一个应用程序。 AppHost(在 Startup.cs 内)和一个 Configure.Db.cs 文件。 我想 运行 一个后台服务(基于定时器)来例行地做一些事情,除了服务服务。

如果我在 Apphost 的 Configure() 中添加计时器,即 运行 Configure.Db 之前,我会遇到一个问题后台服务依赖于要配置的Db。

编辑:我刚刚发现可以指定模块化启动的顺序:https://docs.servicestack.net/modular-startup#modular-startup-prioritization 这意味着我可以在 Apphost 之前强制 Configure.db 到 运行。

无论如何,我做错了吗?我是否应该为后台作业单独设置一个 AppHost?

我建议配置 Background MQ Service 以在后台执行服务。

您可以通过添加 mix

查看如何使用 hangfire 执行此操作
x mix hangfire-postgres

这将允许您添加根据 cron 计划在后台触发的服务。

要使其在没有数据库的情况下工作,您需要将 postgres 提供程序更改为内存提供程序:https://github.com/perrich/Hangfire.MemoryStorage