我在 ASP.NET MVC 上有一个小型 API 应用程序。我的一个端点创建一个实体并将其存储在数据库中。
是否有任何工具可以在一段时间(例如1小时)后更改此实体? IE。一段时间后我需要在这个实体上自动执行工作。
我找到了 Quartz.NET 库,但它似乎不太适合这种情况。据我了解,Quartz 提供了一个按设定时间间隔运行的
BackgroundWorker
。
附注 我还希望能够将延迟的进程保存在内存中,以便在重新启动程序后恢复所有延迟的任务(但我知道我要求太多了)
基本上,您需要一些可以触发代码的东西。大多数方法都在幕后包含某种间隔。 Quartz.NET 是此类任务的后流行解决方案。此外,它还包含持久化功能,所以您无需担心
此外,如果您需要将您的实体标记为已过期或类似的内容。您可以利用这样一个事实:没有人知道数据库中的内容,除非他们调用您的 API。因此,您可以在“惰性模式”下执行此操作 - 在请求实体时处理该逻辑。可以说,您有端点:
POST /entity
创建实体;GET /active
列出活动实体;假设您需要该实体在 1 小时后从
/active
列表中消失。因此,在 /active
处理程序中,您可以检查过期情况并进行相应更新。