public string Schedule(HeyRememberDeferredExecution deferredExecution) { HeyRememberDto heyRemember = deferredExecution.HeyRemember; DateTime when = heyRemember.When[0]; string id = $"{heyRemember.Type}/{when}/{heyRemember.CronExpression}".GetHashCode().ToString(); RecurringJob.AddOrUpdate(id, () => deferredExecution.Execute(deferredExecution.HeyRemember), heyRemember.CronExpression, TimeZoneInfo.Utc); return(id); }
public IHttpActionResult Execute(HeyController controller) { HeyRememberDeferredExecution deferredExecution = _methodBinder.CreateDeferredExecution(); HeyRememberDto heyRemember = deferredExecution.HeyRemember; try { string jobId = _scheduleType.Schedule(deferredExecution); string heyId = $"{heyRemember.Domain}/{(heyRemember.Type != string.Empty ? heyRemember.Type + "/" : string.Empty)}{heyRemember.Name}/{heyRemember.Id}/{jobId}"; _log.Info($"{heyRemember} scheduled on {heyId}"); var heyRememberReturn = new HeyRememberDto(heyRemember); heyRememberReturn.When[0] = new FindDatesFromHeyRemember(heyRememberReturn).Next(); return(_returnType.Return(heyId, heyRememberReturn, controller)); } catch (Exception ex) { _log.Error($"{heyRemember}: Error while trying to schedule job", ex); return(controller.ExposedInternalServerError(ex)); } }
public string Schedule(HeyRememberDeferredExecution deferredExecution) { HeyRememberDto heyRemember = deferredExecution.HeyRemember; return(BackgroundJob.Schedule(() => deferredExecution.Execute(heyRemember), new DateTimeOffset(heyRemember.When[0]))); }
public string Schedule(HeyRememberDeferredExecution deferredExecution) { return(BackgroundJob.Enqueue(() => deferredExecution.Execute(deferredExecution.HeyRemember))); }