コード例 #1
0
        /// <summary>
        /// Creates a new class of the LegacyJobOrchestrator.
        /// </summary>
        /// <param name="publishedNodesJobConverter">The converter to read the job from the specified file.</param>
        /// <param name="legacyCliModelProvider">The provider that provides the legacy command line arguments.</param>
        /// <param name="jobSerializer">The serializer to (de)serialize job information.</param>
        /// <param name="logger">Logger to write log messages.</param>
        /// <param name="identity">Module's identity provider.</param>

        public LegacyJobOrchestrator(PublishedNodesJobConverter publishedNodesJobConverter,
                                     ILegacyCliModelProvider legacyCliModelProvider, IJobSerializer jobSerializer,
                                     ILogger logger, IIdentity identity)
        {
            _publishedNodesJobConverter = publishedNodesJobConverter
                                          ?? throw new ArgumentNullException(nameof(publishedNodesJobConverter));
            _legacyCliModel = legacyCliModelProvider.LegacyCliModel
                              ?? throw new ArgumentNullException(nameof(legacyCliModelProvider));
            _jobSerializer = jobSerializer ?? throw new ArgumentNullException(nameof(jobSerializer));
            _logger        = logger ?? throw new ArgumentNullException(nameof(logger));
            _identity      = identity ?? throw new ArgumentNullException(nameof(identity));

            var directory = Path.GetDirectoryName(_legacyCliModel.PublishedNodesFile);

            if (string.IsNullOrWhiteSpace(directory))
            {
                directory = Environment.CurrentDirectory;
            }

            var file = Path.GetFileName(_legacyCliModel.PublishedNodesFile);

            _fileSystemWatcher                     = new FileSystemWatcher(directory, file);
            _fileSystemWatcher.Changed            += _fileSystemWatcher_Changed;
            _fileSystemWatcher.EnableRaisingEvents = true;
            RefreshJobFromFile();
        }
コード例 #2
0
        /// <summary>
        /// Creates a new class of the LegacyJobOrchestrator.
        /// </summary>
        /// <param name="publishedNodesJobConverter">The converter to read the job from the specified file.</param>
        /// <param name="legacyCliModelProvider">The provider that provides the legacy command line arguments.</param>
        /// <param name="agentConfigPriovider">The provider that provides the agent configuration.</param>
        /// <param name="jobSerializer">The serializer to (de)serialize job information.</param>
        /// <param name="logger">Logger to write log messages.</param>
        /// <param name="identity">Module's identity provider.</param>

        public LegacyJobOrchestrator(PublishedNodesJobConverter publishedNodesJobConverter,
                                     ILegacyCliModelProvider legacyCliModelProvider, IAgentConfigProvider agentConfigPriovider,
                                     IJobSerializer jobSerializer, ILogger logger, IIdentity identity)
        {
            _publishedNodesJobConverter = publishedNodesJobConverter
                                          ?? throw new ArgumentNullException(nameof(publishedNodesJobConverter));
            _legacyCliModel = legacyCliModelProvider.LegacyCliModel
                              ?? throw new ArgumentNullException(nameof(legacyCliModelProvider));
            _agentConfig = agentConfigPriovider.Config
                           ?? throw new ArgumentNullException(nameof(agentConfigPriovider));

            _jobSerializer = jobSerializer ?? throw new ArgumentNullException(nameof(jobSerializer));
            _logger        = logger ?? throw new ArgumentNullException(nameof(logger));
            _identity      = identity ?? throw new ArgumentNullException(nameof(identity));

            var directory = Path.GetDirectoryName(_legacyCliModel.PublishedNodesFile);

            if (string.IsNullOrWhiteSpace(directory))
            {
                directory = Environment.CurrentDirectory;
            }

            _availableJobs = new Queue <JobProcessingInstructionModel>();
            _assignedJobs  = new ConcurrentDictionary <string, JobProcessingInstructionModel>();

            var file = Path.GetFileName(_legacyCliModel.PublishedNodesFile);

            _fileSystemWatcher                     = new FileSystemWatcher(directory, file);
            _fileSystemWatcher.Changed            += _fileSystemWatcher_Changed;
            _fileSystemWatcher.EnableRaisingEvents = true;
            RefreshJobFromFile();
        }