Esempio n. 1
0
        public IActionResult AddRecurringObjectJob()
        {
            ObjectParam objectParam = new ObjectParam();

            RecurringJob.AddOrUpdate <ObjectJob>("ObjectJobID", job => job.Run((PerformContext)null, objectParam), objectParam.Cron);
            return(Content("AddRecurringObjectJob"));
        }
Esempio n. 2
0
        public void Run(PerformContext context, ObjectParam param)
        {
            Console.WriteLine("***********************************");
            Console.WriteLine($"{nameof(param)}: {Newtonsoft.Json.JsonConvert.SerializeObject(param)}");

            CronExpression cronExpression = CronExpression.Parse(param.Cron, CronFormat.Standard);
            DateTimeOffset nowTime        = DateTimeOffset.Now;
            DateTimeOffset?nextTime       = cronExpression.GetNextOccurrence(nowTime, TimeZoneInfo.Local);

            Console.WriteLine($"{nameof(nowTime)}: {nowTime}; {nameof(nextTime)}:{nextTime}");
            DateTimeOffset?next2Time = cronExpression.GetNextOccurrence(nextTime.Value, TimeZoneInfo.Local);

            Console.WriteLine($"{nameof(nowTime)}: {nowTime}; {nameof(nextTime)}:{nextTime}; {nameof(next2Time)}:{next2Time}");
            TimeSpan?cycleInterval    = next2Time?.DateTime - nextTime?.DateTime;
            DateTime?currentCycleTime = nextTime?.DateTime - cycleInterval;

            Console.WriteLine($"{nameof(cycleInterval)}: {cycleInterval}; {nameof(currentCycleTime)}:{currentCycleTime}");
        }