Пример #1
0
 public FileWorkerAgentImpl(IGridFSBucket gridFsBucket, ITransportSender transport,
                            ILogger <FileWorkerAgentImpl> logger) : base(transport,
                                                                         AgentType.FileManager, "", MessageType.FileRequest, MessageType.Unknown)
 {
     _logger = logger;
     _gridFs = gridFsBucket;
 }
 public ETxtAgent(ITransportSender transport, ILogger <ETxtAgent> logger) : base(transport, AgentType.Worker,
                                                                                 "ETxt", MessageType.Unknown,
                                                                                 MessageType.WorkerTask)
 {
     AllowConcurrency = false;
     _logger          = logger;
 }
 public KafkaTransportConsumer(ITransportSender transportSender, IOptions <KafkaConfiguration> options,
                               ILogger <KafkaTransportConsumer> logger)
 {
     _transportSender = transportSender;
     _logger          = logger;
     _configuration   = options.Value;
 }
Пример #4
0
 public DocumentSplitter(ITransportSender transport, IFileWorkerAgent fileWorkerAgent,
                         ILogger <DocumentSplitter> logger) : base(transport, AgentType.Splitter, "",
                                                                   MessageType.Unknown, MessageType.SplitterTask)
 {
     _fileWorkerAgent = fileWorkerAgent;
     _logger          = logger;
 }
Пример #5
0
        public FileWorkerAgentImpl(ITransportSender transport, ILogger <FileWorkerAgentImpl> logger) : base(transport,
                                                                                                            AgentType.FileManager, "", MessageType.FileRequest, MessageType.CreateFile, MessageType.DeleteFile)
        {
            _logger = logger;
            var client   = new MongoClient("mongodb://*****:*****@localhost");
            var database = client.GetDatabase("tasks");

            _gridFs = new GridFSBucket(database);
        }
        public DbWorkerAgentImpl(ITransportSender transport, ILogger <DbWorkerAgentImpl> logger) : base(transport,
                                                                                                        AgentType.DbManager, "", MessageType.DbRequest, MessageType.SplitterTask, MessageType.WorkerTask,
                                                                                                        MessageType.TaskStat)
        {
            _logger = logger;
            var client = new MongoClient("mongodb://*****:*****@localhost");

            _taskCollection = client.GetDatabase("tasks").GetCollection <DbTask>("tasks");
        }
Пример #7
0
 public UiAgent(IHubContext <AgentHub> agentUiHub, IHubContext <TaskHub> taskUiHub, ILogger <UiAgent> logger,
                ITransportSender transportSender, IFileWorkerAgent fileWorkerAgent) :
     base(transportSender, AgentType.Ui, "", MessageType.Unknown, MessageType.Connection, MessageType.WorkerTask,
          MessageType.TaskStat)
 {
     _agentUiHub      = agentUiHub;
     _taskUiHub       = taskUiHub;
     _logger          = logger;
     _fileWorkerAgent = fileWorkerAgent;
 }
        /// <inheritdoc/>
        public void Connect(ITransportSender sender)
        {
            if (_sender != null)
            {
                throw new InvalidOperationException("Already connected.");
            }

            _sender = sender;

            _connectedEvent.Set();
        }
 public ConnectionAnalyzer(ITransportSender sender) : base(sender,
                                                           AgentType.ConnectionAnalyzer, "", MessageType.ConnectionRequest, MessageType.Connection)
 {
     Task.Run(CheckConnectionState);
     Connections.Add(new ConnectionState
     {
         State      = AgentState.Online,
         Who        = new Author(this),
         LastUpdate = DateTime.Now
     });
 }
Пример #10
0
 public DefaultMessageBus(
     ITransportSender transport,
     IMessageSerializer messageSerializer,
     ISubscribeManager subscribeManager,
     ILoggerFactory loggerFactory
     )
 {
     _transport        = transport ?? throw new ArgumentNullException(nameof(ITransportSender));
     _serializer       = messageSerializer ?? throw new ArgumentNullException(nameof(IMessageSerializer));
     _subscribeManager = subscribeManager ?? throw new ArgumentNullException(nameof(ISubscribeManager));
     _logger           = loggerFactory.CreateLogger <IMessageBus>();
 }
Пример #11
0
 protected AgentAbstract(ITransportSender transport, AgentType type, string subType = "",
                         MessageType rpcType = MessageType.Unknown, params MessageType[] supportedMessage)
 {
     Transport      = transport;
     Type           = type;
     RpcMessageType = rpcType;
     SubType        = subType;
     MachineName    = Environment.MachineName;
     Version        = GetType().Assembly.GetName().Version.ToString();
     Ip             = string.Join(", ", Dns.GetHostAddresses(Dns.GetHostName())
                                  .Where(x => x.AddressFamily == AddressFamily.InterNetwork)
                                  .Select(x => x.ToString()));
     SupportedMessage = supportedMessage;
     Id    = Guid.NewGuid();
     State = AgentState.Online;
     Task.Run(SendHearthBeat);
 }
        /// <inheritdoc/>
        public void Disconnect(DisconnectedEventArgs e = null)
        {
            var didDisconnect = false;

            if (!_isDisconnecting)
            {
                _isDisconnecting = true;
                try
                {
                    try
                    {
                        if (_sender != null)
                        {
                            _sender.Close();
                            _sender.Dispose();
                            didDisconnect = true;
                        }
                    }
#pragma warning disable CA1031 // Do not catch general exception types

                    // As ITransportSender is an extension point, we don't
                    // know what exceptions will be thrown by different implementations
                    // of ITransportSender.Close(). We do want to ensure that Disconnect doesn't
                    // stop the other resource cleanup, so we don't throw any exception.
                    // TODO: Flow ILogger all the way here and start logging these exceptions.
                    catch (Exception)
#pragma warning restore CA1031 // Do not catch general exception types
                    {
                    }

                    _sender = null;

                    if (didDisconnect)
                    {
                        _connectedEvent.Reset();
                        Disconnected?.Invoke(this, e ?? DisconnectedEventArgs.Empty);
                    }
                }
                finally
                {
                    _isDisconnecting = false;
                }
            }
        }
Пример #13
0
        /// <inheritdoc/>
        public void Disconnect(DisconnectedEventArgs e = null)
        {
            var didDisconnect = false;

            if (!_isDisconnecting)
            {
                _isDisconnecting = true;
                try
                {
                    try
                    {
                        if (_sender != null)
                        {
                            _sender.Close();
                            _sender.Dispose();
                            didDisconnect = true;
                        }
                    }
                    catch (Exception)
                    {
                    }

                    _sender = null;

                    if (didDisconnect)
                    {
                        _connectedEvent.Reset();
                        Disconnected?.Invoke(this, e ?? DisconnectedEventArgs.Empty);
                    }
                }
                finally
                {
                    _isDisconnecting = false;
                }
            }
        }
Пример #14
0
 public FileActionProcessor(ITransportSender httpSender, string tempDirectory)
 {
     _httpSender     = httpSender;
     _tempDirectory  = tempDirectory;
     _filesInTheWork = new ConcurrentDictionary <string, FileActionType>();
 }
Пример #15
0
 public void Connect(ITransportSender sender)
 {
     throw new NotImplementedException();
 }
 public TestAgent2(ITransportSender transportSender) : base(transportSender, AgentType.Worker, "", MessageType.TaskRequest, MessageType.SplitterTask)
 {
 }
Пример #17
0
 public AdvegoAgent(ITransportSender transport, ILogger <AdvegoAgent> logger) :
     base(transport, AgentType.Worker, "Advego", MessageType.Unknown, MessageType.WorkerTask)
 {
     _logger          = logger;
     AllowConcurrency = false;
 }