【发布时间】:2012-06-05 04:16:11
【问题描述】:
好的,这里有一点背景。我有一个大型 Web 应用程序 (MVC3),它可以处理各种不重要的事情。我需要这个 Web 应用程序能够在 Oracle 数据库中安排临时 Quartz.NET 作业。然后,我希望稍后通过 windows 服务 执行这些作业。理想情况下,我想安排它们以均匀的间隔运行,但可以选择通过网络应用添加作业。
基本上,所需的架构是这样的一些变体:
Web 应用程序 Quartz.NET 数据库 Quartz.NET Windows 服务
到目前为止我编写的代码:
- (目前)计划和运行作业的 Windows 服务。从长远来看,这显然不会是这样,但我想知道我是否可以保留它并对其进行修改,使其基本上代表上图中的两个“Quartz.NET”。
- 网络应用程序(我想细节在这里不是很重要)
- 作业(实际上只是另一个 Windows 服务)
还有一些重要的注意事项:
- 它必须从 Windows 服务运行,并且必须通过 Web 应用程序进行调度(以减少 IIS 上的负载)
- 假设上述项目符号仍然适用,上述架构可以稍微重新排列。
现在,有几个问题:
- 这可能吗?
- 假设 (1) 通过,你们认为最好的架构是什么?请参阅我编写的第一个项目符号。
- 谁能给我一些 Quartz 方法,它们可以帮助我查询数据库,以便在它们已经安排好后执行?
只要这个问题符合条件,就会有赏金。如果问题在此之前以令人满意的方式回答,我仍然会将赏金奖励给答案的发布者。所以,无论如何,如果你在这里给出一个好的答案,你就会得到赏金。
【问题讨论】:
-
好的,先问几个问题。你认为 Quartz 的工作是什么?我对它进行了一些快速研究,似乎 Quartz.Net 作业是接口的自写实现。 Quartz 项目是执行调度的部分。根据项目主页面,可以使用 ADO.net 将作业存储在 Oracle 数据库中。你真正的问题是什么?
-
好吧,我只是想弄清楚如何拆分 Quartz 的东西,以便一个实体安排它们,另一个实体执行它们。通常,我会做类似的事情: _scheduler.ScheduleJob(jobDetail, trigger);但这会将其设置为每隔一段时间自动触发一次,具体取决于
trigger。我想保留该功能,但也想获得即时安排作业的功能 -
在我的案例中,quartz 工作是一个 Windows 服务,它可以从系统中清除不必要的文件
-
这是一个很常见的场景。您使用的是哪个版本? API 在版本之间发生了显着变化,示例代码会有所不同。
-
2.0.1.100 - 但我想我可以让它工作。尽管如此,我还是希望您能就最好的方式给我任何意见
标签: c# oracle windows-services cron quartz.net