【问题标题】:Quartz.net Setup for stored procedures and moreQuartz.net 设置存储过程等
【发布时间】:2013-08-07 22:43:31
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

  • 谢谢,我阅读了文档,发现没有引用需要放置 DLL 才能被拾取的文件夹。我发现的所有参考资料都提到了对 DLL 的远程访问,而不是直接访问。如果您将答案放在单独的帖子中,我可以将它们标记为答案。

标签: sql-server quartz.net


【解决方案1】:

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

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

就这么简单……

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2016-08-10
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      相关资源
      最近更新 更多