public void Setup()
 {
     _jobSchedulesMock.Add(new JobSchedule(typeof(SearchRequestJob), "0/5 * * * * ?"));
     // _jobSchedulesMock.Add(new JobSchedule(typeof(FailedSearchRequestJob), "0/5 * * * * ?"));
     _schedulerFactoryMock.Setup(x => x.GetScheduler(It.IsAny <CancellationToken>()))
     .Returns(Task.FromResult(_schedulerMock.Object));
     sut = new QuartzHostedService(_schedulerFactoryMock.Object, _jobFactoryMock.Object, _jobSchedulesMock);
 }
Beispiel #2
0
 public ScheduleManagerController(ILogger <ScheduleManagerController> logger,
                                  IEnumerable <JobSchedule> jobSchedules,
                                  QuartzHostedService quartzHostedService,
                                  JobTriggerInfo JobTriggerInfo)
 {
     _logger              = logger;
     _jobSchedules        = jobSchedules;
     _quartzHostedService = quartzHostedService;
     _jobTriggerInfo      = JobTriggerInfo ?? throw new ArgumentNullException(nameof(JobTriggerInfo));
 }
        public async void IServiceCollectionExtensions_Register_RegisterJob_ITrigger()
        {
            // Registered jobas
            var scheduleJobc = new List <IScheduleJob>();
            var jobDetail1   = A.Fake <IJobDetail>();

            var trigger1 = A.Fake <ITrigger>();
            var trigger2 = A.Fake <ITrigger>();
            var trigger3 = A.Fake <ITrigger>();

            scheduleJobc.Add(new ScheduleJob(jobDetail1, new List <ITrigger>()
            {
                trigger1, trigger2, trigger3
            }));

            IServiceProvider serviceProvider = A.Fake <IServiceProvider>();

            A.CallTo(() => serviceProvider.GetService(typeof(IEnumerable <IScheduleJob>))).Returns(scheduleJobc);


            ISchedulerFactory schedulerFactory = A.Fake <ISchedulerFactory>();
            IScheduler        scheduler        = A.Fake <IScheduler>();

            A.CallTo(() => schedulerFactory.GetScheduler(A <CancellationToken> .Ignored))
            .Returns(Task.FromResult(scheduler));

            IJobFactory jobFactory = A.Fake <IJobFactory>();

            var testClass = new QuartzHostedService(serviceProvider, schedulerFactory, jobFactory);
            await testClass.StartAsync(CancellationToken.None);

            A.CallTo(
                () => scheduler.ScheduleJob(
                    A <IJobDetail> .That.Matches(jd => jd == jobDetail1),
                    A <ITrigger> .That.Matches(t => t == trigger1),
                    A <CancellationToken> .Ignored))
            .MustHaveHappened(1, Times.Exactly);

            A.CallTo(
                () => scheduler.ScheduleJob(
                    A <ITrigger> .That.Matches(t => t == trigger2 || t == trigger3),
                    A <CancellationToken> .Ignored))
            .MustHaveHappened(2, Times.Exactly);
        }
        public async void IServiceCollectionExtensions_Register_RegisterJob()
        {
            // Зарегистрированные джобы
            var scheduleJobc = new List <IScheduleJob>();
            var jobDetail1   = A.Fake <IJobDetail>();
            var jobDetail2   = A.Fake <IJobDetail>();
            var jobDetail3   = A.Fake <IJobDetail>();

            scheduleJobc.Add(new ScheduleJob(jobDetail1, new List <ITrigger>()
            {
                A.Fake <ITrigger>()
            }));
            scheduleJobc.Add(new ScheduleJob(jobDetail2, new List <ITrigger>()
            {
                A.Fake <ITrigger>()
            }));
            scheduleJobc.Add(new ScheduleJob(jobDetail3, new List <ITrigger>()
            {
                A.Fake <ITrigger>()
            }));

            IServiceProvider serviceProvider = A.Fake <IServiceProvider>();

            A.CallTo(() => serviceProvider.GetService(typeof(IEnumerable <IScheduleJob>))).Returns(scheduleJobc);


            ISchedulerFactory schedulerFactory = A.Fake <ISchedulerFactory>();
            IScheduler        scheduler        = A.Fake <IScheduler>();

            A.CallTo(() => schedulerFactory.GetScheduler(A <CancellationToken> .Ignored))
            .Returns(Task.FromResult(scheduler));

            IJobFactory jobFactory = A.Fake <IJobFactory>();

            var testClass = new QuartzHostedService(serviceProvider, schedulerFactory, jobFactory);
            await testClass.StartAsync(CancellationToken.None);

            A.CallTo(
                () => scheduler.ScheduleJob(
                    A <IJobDetail> .That.Matches(jd => jd == jobDetail1 || jd == jobDetail2 || jd == jobDetail3),
                    A <ITrigger> .Ignored,
                    A <CancellationToken> .Ignored))
            .MustHaveHappened(Repeated.Like(count => count == 3));
        }
        public async void IServiceCollectionExtensions_Register_HostedService()
        {
            IServiceProvider serviceProvider = A.Fake <IServiceProvider>();

            A.CallTo(() => serviceProvider.GetService(typeof(IEnumerable <IScheduleJob>))).Returns(null);

            ISchedulerFactory schedulerFactory = A.Fake <ISchedulerFactory>();
            IScheduler        scheduler        = A.Fake <IScheduler>();

            A.CallTo(() => schedulerFactory.GetScheduler(A <CancellationToken> .Ignored))
            .Returns(Task.FromResult(scheduler));

            IJobFactory jobFactory = A.Fake <IJobFactory>();

            var testClass = new QuartzHostedService(serviceProvider, schedulerFactory, jobFactory);
            await testClass.StartAsync(CancellationToken.None);

            A.CallTo(scheduler)
            .Where(a => a.Method.Name.Equals("set_JobFactory"));
        }
Beispiel #6
0
        static async Task Main()
        {
            ILogger            logger            = GetLogger();
            IServiceCollection serviceCollection = ConfigureServices(logger);
            ServiceProvider    serviceProvider   = serviceCollection.BuildServiceProvider();

            LoadBrands(serviceProvider);
            LoadModels(serviceProvider);
            LoadCars(serviceProvider);

            SeedDb(serviceProvider);

            CollectData collectData = serviceProvider.GetService <CollectData>();

            collectData.SaveAllBrands(serviceProvider);
            collectData.SaveAllModels(serviceProvider);

            QuartzHostedService quartz = serviceProvider.GetService <QuartzHostedService>();

            await quartz.StartAsync(new CancellationToken());

            Thread.Sleep(1000000000);
        }
Beispiel #7
0
 /// <summary>
 /// 建構子
 /// </summary>
 /// <param name="quartzHostedService">Quartz排程服務</param>
 public SchedulerHub(QuartzHostedService quartzHostedService)
 {
     _quartzHostedService = quartzHostedService;
 }