0

我正在设置一组新的作业和触发器。有没有办法通过添加元素的路径将应用程序文件放入 Quartz.Server 配置文件的不同目录或子目录中?我在配置文件中尝试了几种变体,但没有成功:

例如:

而不是这个:

<job-type>MyNameSpace.MyApp, MyAppExectableFile</job-type>

做这样的事情:

 <job-type>MyNameSpace.MyApp, programs\daily\MyAppExectableFile</job-type>

谢谢...安东

4

2 回答 2

0

我相信您必须编写自己的 JobFactory 来处理您的工作,如果您将任何 IoC 用于您的 Job 实现,您可能需要它。参考:

http://jayvilalta.com/blog/2012/07/02/quartz-net-ijobfactory-interface/ http://jayvilalta.com/blog/2012/07/16/configuring-quartz-net-to-use- a-custom-job-factory/ http://jayvilalta.com/blog/2012/07/23/creating-a-custom-quartz-net-jobfactory/

然后,您可以使用AppDomain.AssemblyResolve在其他位置获取您的程序集。

于 2013-03-12T00:58:19.143 回答
0

我真的迟到了。

但我想分享我的解决方案,所以也许其他人会发现它有用。

在调度程序项目的 App.Config 中添加probing paths作业所在的路径(带有 ):

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="Test1;Test2" />
        ...
    </assemblyBinding>
</runtime>

在此示例中,您可以在执行目录中有 2 个文件夹,其中包含 2 个作业。

工作定义仍然:

<job-type>MyNameSpace.TestApp1, MyAppExectableFile</job-type>

并且您不需要修改路径,例如:Test1/MyAppExectableFile.

这个解决方案可以解决另一个(在我看来)你可以使用 Quartz.net 找到的大麻烦:不同工作中的不同版本的 dll。

于 2018-04-12T15:20:26.507 回答