【问题标题】:How to implement Quartz in ServiceStack [closed]如何在 ServiceStack 中实现 Quartz [关闭]
【发布时间】:2015-11-13 19:23:47
【问题描述】:

我环顾四周,并没有找到一个可靠的、最新的关于使用 Quartz(或任何类似的作业调度程序)和 ServiceStack 的参考资料。我想做以下事情:

  • 将 Quartz 或类似的调度程序作为服务运行(以避免 IIS 问题)
  • 我们的项目使用 ServiceStack,所以我想用它来熟悉 IoC 等模式。

以这种方式在带有调度程序的 Windows 服务中使用 ServiceStack 是否有意义?有没有更好的安排?如果可以,如何在 ServiceStack 中运行 Quartz?

我有很多不完整的想法,但需要帮助来制定一个有凝聚力的计划,因此非常感谢任何帮助。

【问题讨论】:

  • 嘿,我正在考虑将我已经存在的调度程序服务也转移到 ServiceStack 中。你试过这个吗?你是怎么做的?

标签: c# servicestack quartz-scheduler quartz.net


【解决方案1】:

您可以使用wwwlicious制作的ServiceStack.Quartz

【讨论】:

    【解决方案2】:

    Hangfire (Hangfire.io) 是一款出色的作业调度程序。个人比较喜欢 Quartz。

    使用 servicestack 附带的现有 IoC Funq 容器注入 Hangfire 并不容易。但是看看这个question & answer

    【讨论】:

      【解决方案3】:

      我在这里参加聚会有点晚了,但我也遇到了同样的情况。我想不出为什么在自托管 ServiceStack 应用程序中实现 Quartz 调度程序是一个坏主意的好理由。

      我很快创建了一个库,将 Quartz Scheduler 与 ServiceStack Funq IoC 集成在一起,它基本上允许您使用 ServiceStack 设置 Quartz:

      //// This method scans the assembly for the Jobs
      container.RegisterQuartzScheduler(typeof(HelloJob));
      
      //// Resolve the Quartz Scheduler as normal
      var scheduler = container.Resolve<IScheduler>();
      
      //// Start Quartz Scheduler
      scheduler.Start();
      

      您将能够像往常一样使用 Quartz 调度程序。

      我在这里提供了一个如何使用它的示例:https://github.com/CodeRevver/ServiceStackWithQuartz

      NuGet 在这里:https://www.nuget.org/packages/ServiceStack.Funq.Quartz/

      正如我所说,我在几个小时内完成了这项工作,看看它是否符合我的目的。如果你想修改它来做你想做的事情,请随意修改它。

      如果你有兴趣,我将在这里写一篇关于它的博客文章:http://michaelclark.tech/2016/04/16/creating-a-servicestack-windows-service-that-uses-quartz/

      【讨论】:

        猜你喜欢
        • 2016-04-04
        • 1970-01-01
        • 2023-03-26
        • 2017-05-24
        • 2011-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多