Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        public string Schedule(HeyRememberDeferredExecution deferredExecution)
        {
            HeyRememberDto heyRemember = deferredExecution.HeyRemember;

            return(BackgroundJob.Schedule(() => deferredExecution.Execute(heyRemember), new DateTimeOffset(heyRemember.When[0])));
        }
Ejemplo n.º 4
0
 public string Schedule(HeyRememberDeferredExecution deferredExecution)
 {
     return(BackgroundJob.Enqueue(() => deferredExecution.Execute(deferredExecution.HeyRemember)));
 }