/// <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)); }
/// <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) { } }