Ejemplo n.º 1
0
 public RunningJob(JobAppointment jobAppointment, ILogger logger)
 {
     _jobAppointment = jobAppointment;
     _logger         = logger;
     Id               = jobAppointment.Id;
     Status           = JobStatus.Starting;
     _actionReference = jobAppointment.RepeatType == RepeatType.NoRepeat
         ? DoOnetimeWorkAsync
         : DoPeriodicWorkAsync;
 }
Ejemplo n.º 2
0
        public void SucceedsToStartRunningJob()
        {
            //Arrange

            var jobApp = new JobAppointment(
                "Job 1",
                "My job #1",
                DateTime.UtcNow,
                TimeSpan.Zero,
                RepeatType.NoRepeat,
                null,
                "https://localhost:4444");

            var job = new RunningJob(jobApp, _logger);

            //Act
            job.Start(default);
Ejemplo n.º 3
0
        public async Task <Guid> AddJobAsync(CreateJobAppointmentCommandModel model)
        {
            var jobAppointment = new JobAppointment(
                model.Name,
                model.Description,
                model.ShouldRunAt,
                model.Timezone,
                Enum.Parse <RepeatType>(model.RepeatType),
                model.RepeatInterval,
                model.ExternalUrl);

            await _jobAppointmentsRepository.AddAsync(jobAppointment);

            RegisterJob(jobAppointment);

            StartJob(jobAppointment.Id);

            return(jobAppointment.Id);
        }
Ejemplo n.º 4
0
 public Task UpdateAsync(JobAppointment job)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 5
0
 public Task AddAsync(JobAppointment job)
 {
     _jobAppointments.Add(job);
     return(Task.CompletedTask);
 }
Ejemplo n.º 6
0
        private void RegisterJob(JobAppointment jobAppointment)
        {
            var logger = _loggerFactory.CreateLogger($"{jobAppointment.Name}");

            _jobsRegistry.AddJob(new RunningJob(jobAppointment, logger));
        }