0

Quartz.net 和我的想法似乎不同。请帮忙。我会让 Quartz 作为 Windows 服务运行。我将在我的 SQL 服务器上设置一个 Ado Jobstore。我将设置允许 Quartz 访问作业存储的连接字符串。我将有一个触发作业数据映射(存储在作业存储中?)。

我看到我可以设置作业名称,并且可以拥有作业数据映射键/值对,我可以存储例如存储的过程名称和可能的参数。到目前为止,一切都很好。我还看到我可以编写实现 iJob 的代码,并在其中从上下文中获取键/值。然后我的代码可以使用标准 ADO 代码调用存储的过程。我可以使用 web 服务名称和参数做类似的事情,我的自定义代码将调用该服务。

以下是我的问题: 1) 我真的必须创建一段单独的代码来执行存储过程或 Web 服务吗?我认为像 Quartz 这样复杂的东西能够“本机”处理对存储过程、Web 服务的调用,也许还可以执行 ftp 命令等。我是否在寻找不应该的无代码解决方案?

2)假设我必须编写自己的“工作”代码,我该把代码放在哪里?我是否编译成 DLL 并将其放置在某个地方?我如何告诉 Quartz 在哪里寻找我的 DLL?以及如何将配置中的 Job-Name 与我的 DLL 中的类相关联?我是否只使用 Job-Name 设置作为我班级的实际名称?

谢谢!

4

2 回答 2

0

1) 是的,您仍然需要编写单独的作业类。

2) 你的类所要做的就是实现 IJob 接口,调度器会接它。阅读文档。

于 2013-08-20T17:47:35.247 回答
0

Quartz 是一个调度器,它就是它所做的一切,而且它做得很好。它不会“本地”处理对存储过程、Web 服务或 ftp 命令的调用。您必须在实现 IJob 并由 Quartz 按照您指定的时间表实例化的类中编写代码来执行此操作。

最好的办法是创建一个单独的类库 (DLL),您将从您的应用程序中引用该类库,该类库创建一个 Quartz 调度程序的实例,并为其提供需要实例化的类的完全限定名称(例如 MyLibrary.MyNameSpace。 MyClass),它将按计划实例化该类并执行您在Execute()类的覆盖方法中找到的代码......

就是这么简单...

于 2013-08-20T18:06:10.953 回答