【问题标题】:Quartz.net schedule job from asp.net, execute in a windows service app来自 asp.net 的 Quartz.net 计划作业,在 Windows 服务应用程序中执行
【发布时间】:2014-10-24 20:54:34
【问题描述】:

我是 .NET 新手,第一次使用 Quartz.net 调度程序。我想从 ASP.NET 安排作业,但在基于 .NET 的 Windows 服务(或控制台)应用程序中执行它们。我可以看到这是可能的: Use one windows service to execute jobs and two web applications to schedule jobs

在我阅读的大多数示例中,作业类在调度作业的上下文中可用。例如: Executing Quartz.NET jobs from a Windows Service

但是在我的情况下,我看不出这是怎么可能的,因为作业类在 ASP.NET 中不可用。

编辑:基于 ASP 应用程序中的事件(用户触发),我想使用一些数据参数(作业详细信息)安排一次性作业。这是我感到困惑的部分,这可能仅使用 Quartz 还是我必须向 Windows 服务编写某种通信机制来安排作业。

另一方面,我也会有一些作业在固定的时间表上运行,很明显代码将只是 Windows 服务的一部分。

【问题讨论】:

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


    【解决方案1】:

    Quartz 调度器用于根据预定义的调度重复执行作业。在您的情况下,调度信息和作业执行都需要由 Windows 服务处理。

    asp.net 应用程序用于从用户那里收集调度信息,因此收集的信息需要提供给运行在 Windows 服务内部的调度程序。

    希望这会有所帮助。

    用于创建只运行一次作业的触发器的代码。

    TriggerBuilder.Create()
                    .WithIdentity(batch.BatchId.ToString())
                    .StartNow()
                    .WithSimpleSchedule(x => x.WithRepeatCount(0)).Build();
    

    【讨论】:

    • 谢谢,但是我无法想象作业将如何提交到 Windows 服务中的 Quartz 调度程序。我已编辑问题以添加更多详细信息,请参阅。
    • 您可以将 wcf 服务添加到 Windows 服务,您可以从 Web 应用程序调用该服务。一个
    • 参考我添加的代码来运行一次作业。该代码创建一个触发器来运行一次作业。
    猜你喜欢
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多