public void Start(string name, string category, ThreadStart task, Language language = null, User user = null, IJobOptions options = null) { Assert.ArgumentNotNullOrEmpty(name, "name"); Assert.ArgumentNotNullOrEmpty(category, "category"); Assert.ArgumentNotNull(task, "task"); var siteName = Sitecore.Context.Site?.Name ?? string.Empty; var jobOptions = TypeResolver.Resolve <IJobOptions>(new object[] { $"{name} - {Sitecore.Context.User?.Name}", category, siteName, new TaskRunner(task), "Run" }); jobOptions.ContextUser = user ?? options?.ContextUser ?? Sitecore.Context.User; jobOptions.AtomicExecution = false; jobOptions.EnableSecurity = options?.EnableSecurity ?? true; jobOptions.ClientLanguage = language ?? options?.ClientLanguage ?? Sitecore.Context.Language; jobOptions.AfterLife = new TimeSpan(0, 0, 0, 10); var jobManager = TypeResolver.ResolveFromCache <IJobManager>(); JobHandle = jobManager.StartJob(jobOptions); ScheduleCallback(); }
public Handle StartJob(IJobOptions jobOptions) { var options = jobOptions as SpeJobOptions; return(JobManager.Start(options).Handle); }