在阅读了所有教程之后,我仍然试图围绕 Quartz.NET 展开思考,这些教程看起来非常特定于代码,而不是专注于实现。这就是我想要做的。我有 20 个 SQL 存储过程,它们可以执行各种操作,例如查询日志表、将数据重新提交到其他进程等。我希望这些 SP 在一天中定期运行。所以这对于 Quartz.NET 来说似乎很自然。我计划创建一个 Windows Svc,它实现 Quartz.NET 并在与 Quartz 程序集相同的文件夹中的程序集中包含作业。
我认为,实现这一点的一种不好的方法是为每个 SP 编写一个作业类,并为每个 SP 关联一个单独的触发器。作业类将简单地执行一个特定的 SP,其名称在类中被硬编码。那是不好的方式。
但是对于我的一生,我无法弄清楚好方法是什么。显然,拥有一个只执行通用“按名称执行 SP”的作业类,其中名称来自一个简单的 SQL 表,这似乎是要走的路,但我将如何获得与不同 SP 相关联的不同触发器,以及如何Quartz 知道将所有 20 个 SP 加载到单独的线程上吗?
Quartz 怎么知道要拾取更改的触发器,例如为其中一个 SP 拾取?这是否必须是 Win Svc 上的启动/停止循环才能重新加载作业和触发器,还是我也必须手动编写某种“重新加载”代码?
有什么想法吗?我误解了石英是什么吗?措辞使它听起来像是一个企业调度程序,一个系统,一个你安装的东西。OTOH 的所有文档使它看起来只是一堆类,您可以将它们拼接在一起以创建您的 OWN 调度程序或调度系统,这与 MS 在 .NET 中提供的用于创建执行 FTP 的应用程序的类没有什么不同。可能是我期待太多了?