Quartz.NET在作业中注入属性

时间:2015-09-04 08:01:07

标签: c# .net quartz.net

我用这种方式使用Quartz.NET:

ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = schedulerFactory.GetScheduler();

scheduler.Start();

IJobDetail clearCacheJob = JobBuilder.Create<ClearCacheJob>()
                        .WithIdentity("ClearCacheJob", "CacheGroup")
                        .Build();
scheduler.ScheduleJob(clearCacheJob, buildTrigger(cacheCronExpr));

ClearCacheJob是一个实现IJob

的类

它有效,但现在我想在ClearCacheJob类中添加一个属性。类似的东西:

public class ClearCacheJob : IJob
{
    public ISomeService {get; set;}
    public void Execute(IJobExecutionContext context)
    {
        //do stuff
    }
}

如何设置SomeService

1 个答案:

答案 0 :(得分:3)

斯图尔特的评论很有见地。您需要实施自己的工作工厂。我在这里写了一篇博客文章描述了这个过程:http://jayvilalta.com/blog//2012/07/23/creating-a-custom-quartz-net-jobfactory/

就DI容器而言,Castle也受到支持。执行search on NuGet for Quartz.Net并滚动列表。你会看到castle,structuremap,ninject,autofac等。