目前我正在使用Quartz.NET编写一个服务来安排它的运行.
我想知道是否有人有任何使用Quartz.NET和Simple Injector构造函数注入的经验.
以下基本上是我希望实现的目标
public class JobImplementation: IJob
{
private readonly IInjectedClass injectedClass;
public JobImplementation(IInjectedClass _injectedClass)
{
injectedClass = _injectedClass
}
public void Execute(IJobExecutionContext _context)
{
//Job code
}
Run Code Online (Sandbox Code Playgroud) 我现在正在使用Ninject 2.2.1.4,使用我的MVC3,我成功配置Ninject运行它,但我不知道如何在我的MVC3中使用Quartz.Net运行Ninject任何人都可以帮忙吗?
我试图在ASP.NET MVC 4应用程序中使用Quartz.net 2.0安排任务,但我无法完成任务执行.
这是代码:
public class ScheduleTaskConfig
{
public static void StartScheduler()
{
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = schedulerFactory.GetScheduler();
JobKey emailSenderTaskKey = new JobKey("emailSenderTask", "email");
IJobDetail emailSenderTask = JobBuilder.Create<QueuedEmailsSendTask>()
.WithIdentity(emailSenderTaskKey)
.Build();
TriggerKey emailSenderTriggerKey = new TriggerKey("emailSenderTrigger", "email");
ITrigger emailSenderTrigger = TriggerBuilder.Create()
.WithIdentity(emailSenderTriggerKey)
.WithSimpleSchedule(s => s.RepeatForever().WithIntervalInSeconds(5))
.StartNow()
.Build();
scheduler.ScheduleJob(emailSenderTask, emailSenderTrigger);
scheduler.Start();
}
}
Run Code Online (Sandbox Code Playgroud)
它在global.asax应用程序启动时调用
protected void Application_Start()
{
ScheduleTaskConfig.StartScheduler();
...
}
Run Code Online (Sandbox Code Playgroud)
这是实现IJob接口的类:
public class QueuedEmailsSendTask : IJob
{
private IQueuedEmailsService _queuedEmailsService { get; set; }
private IEmailSenderService …Run Code Online (Sandbox Code Playgroud)