【问题标题】:Quartz.net: Scheduled code not working after deployment automatically, working locallyQuartz.net:计划代码在自动部署后不工作,在本地工作
【发布时间】:2015-08-11 13:48:42
【问题描述】:

我希望从我的 MVC 网站在预定的时间线(每周一次)发送一封电子邮件。在本地通过 Visual Studio 运行时,代码在预定时间运行得非常好。但是,在部署到服务器后不会被触发。

当我在部署后访问网站一次时,它开始工作,因为 Applciaiton_Start 事件在我触发 Quartz 引擎的地方被触发。

有没有一种方法可以在不访问网站的情况下触发引擎。 Quartz 是否总是以这种方式工作,您必须点击应用程序一次。

【问题讨论】:

    标签: .net asp.net-mvc quartz-scheduler quartz.net


    【解决方案1】:

    不,你不能。 在您的情况下,Quartz.net 存在于您的应用程序中。
    当应用程序池被回收时,您的调度程序就会死掉。

    这不是 Quartz.Net 的问题,而是 IIS 及其管理应用程序池的方式。

    我想对您来说最好的选择是使用Windows Service 中的调度程序。

    另一种选择是创建一个简单的应用程序(控制台)并通过系统任务计划程序运行它。使用此选项,您可能希望摆脱 Quartz.Net。

    第三种选择是使用Uptime RobotPingdom 等外部服务来保持应用程序的运行。我不会选择这个选项,但这是一种可能。

    如果您要选择第 3 个选项,我建议您使用 JobStore,这样您就可以将您的工作保存在数据库中,并且不会错过任何问题。

    【讨论】:

    • 第四个选项,我会使用的一个是使用 Topshelf 将 Quartz 作为 Windows 服务安装
    • 好吧,归根结底,这始终是一个 Windows 服务。
    • 我会推荐一个 Windows 服务(但无需重新发明轮子)github.com/quartznet/quartznet/tree/master/server/Quartz.Server ...也....尝试去 AdoJobStore。
    猜你喜欢
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 2023-01-15
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    相关资源
    最近更新 更多