public JobRunner(IConnectionProvider connectionProvider, IScriptEngineProvider scriptEngineProvider, ILogger <JobRunner> logger, IJobLoader jobLoader, INotificationService notificationService, IExecutionContext context) { this.connectionProvider = connectionProvider; this.scriptEngineProvider = scriptEngineProvider; this.logger = logger; this.jobLoader = jobLoader; this.notificationService = notificationService; this.context = context; options = new JobRunnerOptions(); }
public WorkerStartup(ILogger logger, IJobContainer jobContainer, IJobLoader jobLoader) { _logger = logger; _jobContainer = jobContainer; _jobLoader = jobLoader; var pluginsPath = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "Jobs"); _jobContainer.LoadDirectory(pluginsPath); }
public JobInstance(IJobAssembly jobAssembly, IJobLoader jobLoader, ILogger logger) { _jobLoader = jobLoader; _logger = logger; JobAssembly = jobAssembly; JobLoadCancellationTokenSource = new CancellationTokenSource(); JobUnloadCancellationTokenSource = new CancellationTokenSource(); JobStatus = JobStatus.None; LoadSchedule(); WatchJob(); }
private IJob ToJob(JobDataObject j, IJobLoader loader) => new Job { Name = j.Name, Active = j.Active, Description = j.Description, Parent = j.Parent, Priority = j.Priority, ConnectionName = j.ConnectionName, Warehouse = j.Warehouse, Units = ToUnitCollection(j.Units, loader, j.Path), Variables = ToVariableCollection(j.Variables), Properties = j.Properties } as IJob;
private IEnumerable <IJobUnit> ToUnitCollection(IEnumerable <JobUnitDataObject> jobUnitDataObjects, IJobLoader loader, string jobKey) => jobUnitDataObjects is null ? new List <IJobUnit>() : jobUnitDataObjects.Select(u => { IJobUnit unit = loader.CreateUnitByType(u.Type); unit.Name = u.Name; unit.Properties = u.Properties; unit.Content = loader.GetContentByPathAsync(textFileProvider.GetAbsolutePath(u.Path, jobKey)).GetAwaiter().GetResult(); return(unit); }) .ToList();
public ICollection <IJob> ToJobCollection(IEnumerable <JobDataObject> jobDataObjects, IJobLoader loader) => jobDataObjects .Where(j => j.Active && j.Parent) .Select(j => ToJob(j, loader)) .ToList();
public JobContainer(IJobLoader jobLoader, ILogger logger) { _jobLoader = jobLoader; _logger = logger; }