gpt4 book ai didi

c# - 如何安排在我的 MVC 网络应用程序中自动运行 Controller ?

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:47 25 4
gpt4 key购买 nike

我有一个持续跟踪温度的数据库。我还有一个 Controller ( Controller A)可以计算 60 分钟内的平均温度(这可以由用户在前端更改)。如果 Controller A 的计算超出了设定的最高温度,它会调用另一个 Controller ,通过电子邮件通知用户( Controller B)。

 Pseudo code:

while(Controller A) <-- runs in the background
{
if(max temperature is reached)
Call Controller B
}

我的问题是,我怎样才能让服务器持续运行 Controller A 而不会变得非常慢?我读到 SignalR 可以做自动化的事情,但我不太确定我应该寻找哪些关键字。

如果有人能为我指出正确的方向,那就太好了。

最佳答案

您不应该在 ASP.NET 线程上运行如此长时间的进程。你有两个选择

1) 创建一个 Windows 服务,它会每隔 n 分钟检查一次您的数据库表并执行所需的操作(例如发送电子邮件等)

2) ServiceBus/RabbitMQ 等消息服务

3) 如果输入通过应用程序中的 Controller 进入数据库表,您可以将此值传递给另一个服务/线程/进程以进行计算和发送电子邮件。


复制自Mason's在对 future 读者的回答中发表评论:还有其他选项,如 Hangfire、FluentScheduler、Quartz 等。这些库是围绕在 ASP.NET 后台手动运行某些代码的一些缺陷而设计的。 Scott Hanselman 在 excellent blog post 中描述了它们带有示例代码。

关于c# - 如何安排在我的 MVC 网络应用程序中自动运行 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34400778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com