예제 #1
0
        public Task ExecuteAsync(DateTime dateTime, CancellationToken cancellationToken)
        {
            foreach (var cronSchedule in _cronSchedules)
            {
                if (!cronSchedule.IsTime(dateTime))
                {
                    continue;
                }

                JobExecuting?.Invoke(this, Name);

                return(Task.Run(_func, cancellationToken).ContinueWith(x => JobExecuted?.Invoke(this, Name)));
            }

            return(Task.CompletedTask);
        }
예제 #2
0
        public Task RunAsync(Func <Task> func, CancellationToken cancellationToken, string name)
        {
            JobExecuting?.Invoke(this, name);

            return(Task.Run(func, cancellationToken).ContinueWith(x => JobExecuted?.Invoke(this, name)));
        }
예제 #3
0
 private void Job_JobExecuting(object sender, string name)
 {
     JobExecuting?.Invoke(sender, name);
 }