Example #1
0
        private void InsertJobContext(JobContext context)
        {
            if (context.ExecutionTimes == 0)
            {
                context.UtcNextExecution = DateTime.UtcNow.AddSeconds(1.0);
            }
            else
            {
                var interval = context.Job.GetNextInterval(context);
                if (interval == TimeSpan.MaxValue)
                    return;
                context.UtcNextExecution = DateTime.UtcNow.Add(interval);
            }

            lock (_syncRoot)
            {
                var node = _jobs.First;
                while (node != null)
                {
                    if ((node.Previous == null || context.UtcNextExecution <= context.UtcNextExecution)
                        && context.UtcNextExecution < node.Value.UtcNextExecution)
                    {
                        _jobs.AddBefore(node, context);
                        break;
                    }
                    node = node.Next;
                }
                if (node == null)
                    _jobs.AddLast(context);
            }
        }
Example #2
0
        public JobContext AddJob(IJob job, string jobName = null)
        {
            var context = new JobContext(this, job) { Name = jobName };
            context.UtcCreation = DateTime.UtcNow;
            InsertJobContext(context);

            return context;
        }
Example #3
0
 public TimeSpan GetNextInterval(JobContext jobContext)
 {
     return TimeSpan.MaxValue;
 }
Example #4
0
 public void Execute(JobContext jobContext)
 {
     _act();
 }
Example #5
0
 internal void JobExecuted(JobContext context)
 {
     InsertJobContext(context);
 }
Example #6
0
 internal void JobExecuted(JobContext context)
 {
     InsertJobContext(context);
 }
Example #7
0
 public void Execute(JobContext jobContext)
 {
     _act();
 }
Example #8
0
 public TimeSpan GetNextInterval(JobContext jobContext)
 {
     return(TimeSpan.MaxValue);
 }
Example #9
0
 public TimeSpan GetNextInterval(JobContext jobContext)
 {
     return(TimeSpan.FromSeconds(24 * 3600) - DateTime.Now.TimeOfDay);
 }
Example #10
0
 public void Execute(JobContext jobContext)
 {
     if (jobContext.ExecutionTimes != 0)
         Logger.SetLogPath();
 }
Example #11
0
 public TimeSpan GetNextInterval(JobContext jobContext)
 {
     return TimeSpan.FromSeconds(24 * 3600) - DateTime.Now.TimeOfDay;
 }
Example #12
0
 internal void OnExecuted(object sender, JobContext e)
 {
     if (Executed != null)
         Executed(sender, e);
 }
Example #13
0
 internal void OnExecuting(object sender, JobContext e)
 {
     if (Executing != null)
         Executing(sender, e);
 }