【问题标题】:MVC 3 With Quartz.NetMVC 3 与 Quartz.Net
【发布时间】:2014-09-25 17:28:51
【问题描述】:

我目前在 MVC 3 中有一个 UI,它允许用户和管理员在应用程序中配置和创建作业、任务和特定配置值。我想实现 Quartz.Net 以用于调度、启动和记录作业执行。我正在寻找一些帮助来配置 MVC 3 应用程序以使用石英。我应该把 Quartz.Net 配置值放在哪里?网络配置?还是单独的 Quartz.Config 文件?我打算使用 AdoJobStor。我是否必须实现一个 Singleton 类才能在我的 MVC 3 应用程序的各个区域使用 Quartz.Net 调度程序?

感谢您的帮助.....

【问题讨论】:

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


    【解决方案1】:

    我会从tutorial开始。
    从它开始,您需要知道的几乎所有内容。
    您可以通过配置文件或以编程方式配置quartz.net,如here 所述。
    S.O. 中的大量有用信息:

    使用 Quartz.net 配置 ADOJobStore。 更多信息herehere

    正在配置logging

    如果你想在你的 asp.net 中使用 Quartz.net,你必须使用 singleton schedulers

    【讨论】:

    • 我把 Quartz.Net 全部配置好了,但我对如何让可能的许多客户端集中使用它有点困惑。我基本上想确保作业及时执行,而不会影响我的 Web 应用程序的性能。到
    • @M4V3R1CK:在我的一个项目中,我创建了一个 Web 应用程序 (asp.net MVC),它负责创建作业和计划,然后我选择创建自定义 Windows 服务对于时间表。我没有使用 Quartz.net 服务,但我决定从头开始构建一个。
    • @LeftyX,我正在处理 M4V3R1CK 提出的类似要求。由于 IIS 回收问题,quartz.net 调度程序停止工作 :( 你有什么解决方案吗?你也可以提供一些更多的实现细节,我们如何使用单独的服务进行调度并使用 Quartz.net 进行作业在 asp.net 中?任何文章?我正在使用 ASP.Net MVC4
    • @Billa,您可以在 Windows 服务中运行您的quartz.net 调度程序。您的 asp.net MVC 应用程序基本上将创建将由服务处理的作业和触发器。您必须使用 ADOJobStore。我会尝试用一些代码更新我的答案。
    • @LeftyX。太感谢了!!。那么所有的触发器信息都将存储在数据库中,并基于它运行一个 Window 服务吗?但是我将我的应用程序托管在外部托管服务器中。我不认为我可以在他们的机器上运行石英 Windows 服务:(
    【解决方案2】:

    我不会将调度程序放在 IIS 托管的应用程序上,因为它最终会回收。

    这将导致调度程序停止,直到网站被请求击中时重新创建 IIS 进程。这对于高活动的网站可能听起来不错,但请记住 IIS 可能会决定在意外时间(例如在执行任务的中间)回收您的调度程序。您应该将调度程序部分移至 Windows 服务。

    编辑:http://hangfire.io/ 似乎是在 ASP.Net 中运行计划任务的好方法

    Edit2:我实际上是在一个项目中使用 HangFire。它非常易于使用且功能强大。

    【讨论】:

    • 能否请您指出 Hangfire (.Net 4.0) 的文档/帮助/教程/示例
    • 我认为这些适用于支持 .Net 4.5 的 1.5,不适用于 .Net 4.0。主要是我找不到GlobalConfiguration.Configuration
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2011-03-22
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多