gpt4 book ai didi

c# - 如何在 MVC5 网站中创建基于时间的事件?

转载 作者:行者123 更新时间:2023-11-30 17:46:13 27 4
gpt4 key购买 nike

为了拥有基于时间的事件,最好的设计是什么?例如,在用户上次登录后 60 天左右向用户发送提醒?

该系统目前构建在 MVC5 上,所以我考虑在基本 Controller 的 ActionExecuted 中添加一些 cronjobs,以触发所有检查和内容,并执行所有基于事件的任务。

我正在考虑的另一种方法是实际创建一个桌面应用程序(控制台应用程序)并让它一直运行并从 SQL 服务器获取有关新用户注册的推送通知,然后只保留列表并尽快 60 days pass 发送电子邮件,或每天查询一次服务器以获取每个人的最后登录日期,并在任何用户需要时发送电子邮件。

我在 SO 的另一个问题上发现了这个 ( http://www.quartz-scheduler.net): MVC - Run scheduled task even if nobody logs into app

想问问这是否是系统更好的选择?

一个更好的例子是每个月应该向一些用户发送一份时事通讯。这将如何实现?

最佳答案

所以最后我最终使用了 Quartz.NET。我让 MVC 应用程序创建触发器和作业,并且一个单独的服务器运行一个控制台应用程序来执行触发器和作业。

这可以通过 Scheduler.Start() 来实现;在控制台应用程序中,而不是在网络应用程序中。

此外,作业和触发器存储在 SQL 服务器 (Azure SQL) 而不是 RAM 上,因此两台机器都可以访问它们。

我还必须确保时钟与秒同步并更改 <quartz> 中的一些变量Web.config 和 App.config 中的配置部分:

 <add key="quartz.scheduler.instanceId" value="AUTO" />
<add key="quartz.jobStore.clustered" value="true" />

两个系统都应该在集群中运行!

关于c# - 如何在 MVC5 网站中创建基于时间的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26436229/

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