Quartz.net设置存储过程等等

时间:2013-08-06 19:04:25

标签: sql-server quartz.net

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

我看到我可以设置一个Job-name,并且可以拥有我可以存储的Job Data Map键/值对,例如存储的proc名称和param。到现在为止还挺好。我还看到我可以编写实现iJob的代码,并在其中从上下文中获取键/值。然后我的代码可以使用标准ADO代码调用存储过程。我可以使用webservice名称和param做类似的事情,我的自定义代码将调用该服务。

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

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

谢谢!

2 个答案:

答案 0 :(得分:0)

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

2)你所要做的就是实现IJob接口,调度程序将接收它。阅读文档。

答案 1 :(得分:0)

Quartz是一个调度程序,它就是它的全部功能而且它做得很好。它不“本机”处理对存储过程,Web服务或ftp命令的调用。您必须在实现IJob的类中编写代码,并按照您指定的计划由Quartz实例化。

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

就这么简单......