Esempio n. 1
0
 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();
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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;
Esempio n. 5
0
 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();
Esempio n. 6
0
 public ICollection <IJob> ToJobCollection(IEnumerable <JobDataObject> jobDataObjects, IJobLoader loader)
 => jobDataObjects
 .Where(j => j.Active && j.Parent)
 .Select(j => ToJob(j, loader))
 .ToList();
Esempio n. 7
0
 public JobContainer(IJobLoader jobLoader, ILogger logger)
 {
     _jobLoader = jobLoader;
     _logger    = logger;
 }