Пример #1
0
        /// <summary>
        /// Execute a job, exceptions will propegate.
        /// </summary>
        /// <param name="job"></param>
        /// <returns></returns>
        Task ExecuteJob(InternalJob job, bool soft)
        {
            if (!soft)
            {
                lock (Jobs)
                {
                    if (!job.Repeat)
                    {
                        Jobs.Remove(job);
                    }
                    else
                    {
                        job.Restart();
                    }
                }
            }

            MethodContext context = JobContext[job.Job.GetType()];

            return(JobMethods[job.Job.GetType()].Invoke(job.Job, context));
        }
Пример #2
0
        /// <summary>
        /// Try to execute a job, all errors will be silent.
        /// </summary>
        /// <param name="job"></param>
        /// <returns></returns>
        async Task TryExecuteJob(InternalJob job)
        {
            lock (Jobs)
            {
                if (!job.Repeat)
                {
                    Jobs.Remove(job);
                }
                else
                {
                    job.Restart();
                }
            }

            try
            {
                MethodContext context = JobContext[job.Job.GetType()];
                await         JobMethods[job.Job.GetType()].Invoke(job.Job, context);
            }
            catch (Exception)
            {
            }
        }