Quartz.NET с Ninject - PullRequest
       38

Quartz.NET с Ninject

2 голосов
/ 13 марта 2011

Я устанавливаю Ninject в ASP.NET MVC3, как описано здесь Использование двоичных файлов из Github

А теперь я хочу настроить Quartz.NET, но с внедрением Ninject моя работа никогда не выполняется. Прежде чем я внедряю Ninject, моя работа выполняется так, как ожидалось. Зачем? И в чем решение?

Спасибо за вашу помощь! :)

public class MvcApplication : NinjectHttpApplication
{
    (...)       
    protected override IKernel CreateKernel()
    {
        var kernel = new StandardKernel();
        kernel.Load(System.Reflection.Assembly.GetExecutingAssembly());

        kernel.Bind<IUploadRepository>().To<UploadRepository>();
        kernel.Bind<StocksDB>().To<StocksDB>().InRequestScope();

        return kernel;
    }

    protected override void OnApplicationStarted()
    {
        base.OnApplicationStarted();

        AreaRegistration.RegisterAllAreas();
        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);

        // Quartz.NET scheduler
        var factory = new Quartz.Impl.StdSchedulerFactory();
        var scheduler = factory.GetScheduler();
        scheduler.Start();

        // construct job info
        var jobDetail = new Quartz.JobDetail("myJob", null, typeof(DumbJob));
        var trigger = new Quartz.SimpleTrigger("myTrigger", null, DateTime.UtcNow, null, Quartz.SimpleTrigger.RepeatIndefinitely, TimeSpan.FromMinutes(5));            
        scheduler.ScheduleJob(jobDetail, trigger);             
    }
}

Ответы [ 2 ]

1 голос
/ 14 марта 2011

Это не проблема, связанная с Ninject.Вы просто забыли сохранить ссылку на планировщик.Это сразу же мусор, собранный после OnApplicationStarted.

0 голосов
/ 08 апреля 2011

Вам нужно написать свой собственный Ninject ISchedulerFactory для quartz.net.

Фабрика по умолчанию собирается создать новый DumbJob (). И я считаю, что вы пытаетесь внедрить что-то в DumbJob, поэтому вам нужно создать экземпляр DumbJob с помощью ninject на собственной фабрике планировщиков.

Также на этой фабрике вы можете использовать ядро ​​mvc3 ninject.

...