Esempio n. 1
0
        private void RunJobs(TinyCronTimespan timespan)
        {
            var jobs = _cronJobs
                       .Where(j => j.ShouldRun(timespan.Beginning, timespan.Ending));

            foreach (var job in jobs)
            {
                try
                {
                    if (Events.OnJobRunInitiated != null)
                    {
                        Events.OnJobRunInitiated(job);
                    }

                    job.Run();

                    if (Events.OnJobRunCompleted != null)
                    {
                        Events.OnJobRunCompleted(job);
                    }
                }
                catch (Exception ex)
                {
                    if (Events.OnException != null)
                    {
                        Events.OnException(ex);
                    }

                    if (Events.OnJobRunFailed != null)
                    {
                        Events.OnJobRunFailed(job);
                    }
                }
            }
        }
Esempio n. 2
0
        private TinyCronTimespan CalculateNextTimespan()
        {
            var utcNow = UtcNow();

            if (_timespan == null)
            {
                _timespan = new TinyCronTimespan(utcNow, utcNow);
            }
            else
            {
                _timespan.Update(_timespan.Ending.AddTicks(1), utcNow);
            }

            return(_timespan);
        }
Esempio n. 3
0
        public void Stop()
        {
            if (!IsRunning)
            {
                return;
            }

            IsRunning = false;
            _timespan = null;

            if (Events.OnStopped != null)
            {
                Events.OnStopped();
            }
        }