Example #1
0
 public void Update(BackgroundJobInfo jobInfo)
 {
     if (jobInfo.IsAbandoned)
     {
         DeleteAsync(jobInfo.Id);
     }
 }
        public virtual Task UpdateAsync(BackgroundJobInfo jobInfo)
        {
            if (jobInfo.IsAbandoned)
            {
                return(DeleteAsync(jobInfo.Id));
            }

            return(Task.FromResult(0));
        }
        public Task UpdateAsync(BackgroundJobInfo jobInfo)
        {
            if (jobInfo.IsAbandoned)
            {
                return DeleteAsync(jobInfo.Id);
            }

            return Task.FromResult(0);
        }
Example #4
0
 protected virtual async Task TryUpdateAsync(IBackgroundJobStore store, BackgroundJobInfo jobInfo)
 {
     try
     {
         await store.UpdateAsync(jobInfo);
     }
     catch (Exception updateEx)
     {
         Logger.LogException(updateEx);
     }
 }
Example #5
0
 protected virtual void TryUpdate(IBackgroundJobStore store, BackgroundJobInfo jobInfo)
 {
     try
     {
         store.Update(jobInfo);
     }
     catch (Exception updateEx)
     {
         Logger.LogException(updateEx);
     }
 }
Example #6
0
 protected virtual void TryUpdate(BackgroundJobInfo jobInfo)
 {
     try
     {
         Store.UpdateAsync(jobInfo);
     }
     catch (Exception updateEx)
     {
         Logger.LogException(updateEx);
     }
 }
Example #7
0
        public virtual async Task UpdateAsync(BackgroundJobInfo jobInfo)
        {
            var backgroundJobRecord = await BackgroundJobRepository.FindAsync(jobInfo.Id);

            if (backgroundJobRecord == null)
            {
                return;
            }

            ObjectMapper.Map(jobInfo, backgroundJobRecord);
            await BackgroundJobRepository.UpdateAsync(backgroundJobRecord);
        }
Example #8
0
        public void Update(BackgroundJobInfo jobInfo)
        {
            var backgroundJobRecord = BackgroundJobRepository.Find(jobInfo.Id);

            if (backgroundJobRecord == null)
            {
                return;
            }

            ObjectMapper.Map(jobInfo, backgroundJobRecord);
            BackgroundJobRepository.Update(backgroundJobRecord);
        }
Example #9
0
        protected virtual DateTime?CalculateNextTryTime(BackgroundJobInfo jobInfo, IClock clock)
        {
            var nextWaitDuration = WorkerOptions.DefaultFirstWaitDuration * (Math.Pow(WorkerOptions.DefaultWaitFactor, jobInfo.TryCount - 1));
            var nextTryDate      = jobInfo.LastTryTime?.AddSeconds(nextWaitDuration) ??
                                   clock.Now.AddSeconds(nextWaitDuration);

            if (nextTryDate.Subtract(jobInfo.CreationTime).TotalSeconds > WorkerOptions.DefaultTimeout)
            {
                return(null);
            }

            return(nextTryDate);
        }
Example #10
0
        protected virtual DateTime?CalculateNextTryTime(BackgroundJobInfo jobInfo)  //TODO: Move to another place to override easier
        {
            var nextWaitDuration = WorkerOptions.DefaultFirstWaitDuration * (Math.Pow(WorkerOptions.DefaultWaitFactor, jobInfo.TryCount - 1));
            var nextTryDate      = jobInfo.LastTryTime.HasValue
                ? jobInfo.LastTryTime.Value.AddSeconds(nextWaitDuration)
                : Clock.Now.AddSeconds(nextWaitDuration);

            if (nextTryDate.Subtract(jobInfo.CreationTime).TotalSeconds > WorkerOptions.DefaultTimeout)
            {
                return(null);
            }

            return(nextTryDate);
        }
Example #11
0
        public async Task InsertAsync()
        {
            var jobInfo = new BackgroundJobInfo
            {
                Id      = Guid.NewGuid(),
                JobArgs = "args1",
                JobName = "name1"
            };

            await _backgroundJobStore.InsertAsync(
                jobInfo
                ).ConfigureAwait(false);

            var jobInfo2 = await _backgroundJobStore.FindAsync(jobInfo.Id).ConfigureAwait(false);

            jobInfo2.ShouldNotBeNull();
            jobInfo2.Id.ShouldBe(jobInfo.Id);
            jobInfo2.JobArgs.ShouldBe(jobInfo.JobArgs);
            jobInfo2.JobName.ShouldBe(jobInfo.JobName);
        }
Example #12
0
        protected virtual async Task <Guid> EnqueueAsync(string jobName, object args, BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan?delay = null)
        {
            var jobInfo = new BackgroundJobInfo
            {
                Id           = GuidGenerator.Create(),
                JobName      = jobName,
                JobArgs      = Serializer.Serialize(args),
                Priority     = priority,
                CreationTime = Clock.Now,
                NextTryTime  = Clock.Now
            };

            if (delay.HasValue)
            {
                jobInfo.NextTryTime = Clock.Now.Add(delay.Value);
            }

            await Store.InsertAsync(jobInfo);

            return(jobInfo.Id);
        }
Example #13
0
 public void Insert(BackgroundJobInfo jobInfo)
 {
     BackgroundJobRepository.Insert(
         ObjectMapper.Map <BackgroundJobInfo, BackgroundJobRecord>(jobInfo)
         );
 }
Example #14
0
 public virtual async Task InsertAsync(BackgroundJobInfo jobInfo)
 {
     await BackgroundJobRepository.InsertAsync(
         ObjectMapper.Map <BackgroundJobInfo, BackgroundJobRecord>(jobInfo)
         );
 }
Example #15
0
 public void Insert(BackgroundJobInfo jobInfo)
 {
     _jobs[jobInfo.Id] = jobInfo;
 }
        public Task InsertAsync(BackgroundJobInfo jobInfo)
        {
            _jobs[jobInfo.Id] = jobInfo;

            return Task.FromResult(0);
        }
Example #17
0
 public void Update(BackgroundJobInfo jobInfo)
 {
     BackgroundJobRepository.Update(
         ObjectMapper.Map <BackgroundJobInfo, BackgroundJobRecord>(jobInfo)
         );
 }
Example #18
0
 public async Task UpdateAsync(BackgroundJobInfo jobInfo)
 {
     await BackgroundJobRepository.UpdateAsync(
         ObjectMapper.Map <BackgroundJobInfo, BackgroundJobRecord>(jobInfo)
         );
 }