public static async Task Main(string[] args) { await Bootstrap.StartNode(args, KillRecpientType.Service) .ConfigurateAkkaSystem((context, system) => { RepositoryManager.InitRepositoryManager( system, system.Settings.Config.GetString("akka.persistence.journal.mongodb.connection-string"), DataTransferManager.New(system, "Data-Tranfer-Manager")); }) .Build().Run(); }
public ServiceManager(AppConfig config) { _dataTransfer = DataTransferManager.New(Context, "File_Coordination"); _repositoryApi = RepositoryApi.CreateProxy(Context.System); Receive <Init>(_ => { try { if (string.IsNullOrWhiteSpace(config.CurrentConfig)) { return; } var hConfig = ConfigurationFactory.ParseString(config.CurrentConfig); var connectionString = hConfig.GetString("akka.persistence.journal.mongodb.connection-string"); if (string.IsNullOrWhiteSpace(connectionString)) { return; } var stream = Context.System.EventStream; Cluster.Get(Context.System).RegisterOnMemberUp(() => { InitClient(connectionString); stream.Publish(new DeploymentServicesChanged(_repository?.IsOk == true && _deploymentServer?.IsOk == true)); }); } catch (Exception e) { Log.Warning(e, "Error on Parsing Current Configuration"); } }); Receive <NewConnectionString>(s => { try { var hConfig = ConfigurationFactory.ParseString(s.Config); var connectionString = hConfig.GetString("akka.persistence.journal.mongodb.connection-string"); InitClient(connectionString); } catch (Exception e) { Log.Error(e, "Error on Init new Connection String"); } Context.System.EventStream.Publish(new DeploymentServicesChanged(_repository?.IsOk == true && _deploymentServer?.IsOk == true)); }); Receive <GetCurrentState>(_ => Sender.Tell(new DeploymentServicesChanged(_repository?.IsOk == true && _deploymentServer?.IsOk == true))); }
static async Task Main(string[] args) { await Bootstrap.StartNode(args, KillRecpientType.Service) .ConfigurateAkkaSystem((context, system) => { var repoManager = RepositoryApi.CreateProxy(system); var fileManager = DataTransferManager.New(system, "FileTransferManager"); DeploymentManager.InitDeploymentManager( system, system.Settings.Config.GetString("akka.persistence.journal.mongodb.connection-string"), fileManager, repoManager); }) .Build().Run(); }
public SetupBuilder(string hostName, string?seedHostName, AppConfig config, Action <string> log, ActorSystem actorSystem, DeploymentApi api, RepositoryApi repository, IActionInvoker actionInvoker) { _logger = new LoggerConfiguration().WriteTo.Logger(Log.ForContext <SetupBuilder>()).WriteTo.Sink(new DelegateSink(s => _log !(s))).CreateLogger(); _dataTransfer = DataTransferManager.New(actorSystem); _context = new RunContext { HostName = hostName, SeedHostName = seedHostName }; _config = config; _log = log; _api = api; _repository = repository; _actionInvoker = actionInvoker; }
public TestActor() { _dataTransfer = DataTransferManager.New(Context); _dataTransfer.SubscribeToEvent <TransferCompled>(); _dataTransfer.SubscribeToEvent <TransferFailed>(); _dataTransfer.SubscribeToEvent <IncomingDataTransfer>(); Receive <IncomingDataTransfer>(d => d.Accept(() => File.Create(TargetFile))); Receive <TransferMessages.TransferCompled>(c => { if (_currentTransfer == null) { return; } try { switch (c) { case TransferCompled _: ZipFile.Open(TargetFile, ZipArchiveMode.Read).Dispose(); Console.WriteLine("Tranfer Beended"); break; case TransferFailed failed: Console.WriteLine($"Transfer Fehler: {failed.Reason}"); break; } } catch (Exception e) { Console.WriteLine(e); } finally { Self.Tell(_currentTransfer); } }); var toDo = new Queue <Action <ManualResetEvent> >(); toDo.Enqueue(Init); toDo.Enqueue(RegisterTest); toDo.Enqueue(RegisterTest); toDo.Enqueue(TransferTest); toDo.Enqueue(TransferTest); toDo.Enqueue(CleanTest); Receive <ManualResetEvent>(evt => { if (_cancel || toDo.Count == 0) { evt.Set(); return; } var op = toDo.Dequeue(); op(evt); Thread.Sleep(2000); }); }
public static async Task Main(string[] args) { await Bootstrap.StartNode(args, KillRecpientType.Service, IpcApplicationType.Client, ab => { ab.OnMemberUp((context, system, cluster) => { string ApplyMongoUrl(string baseUrl, string repoKey, SharpRepositoryConfiguration configuration) { var builder = new MongoUrlBuilder(baseUrl) { DatabaseName = repoKey, ApplicationName = context.HostingEnvironment.ApplicationName }; var mongoUrl = builder.ToString(); configuration.AddRepository(new MongoDbRepositoryConfiguration(repoKey, mongoUrl) { Factory = typeof(MongoDbConfigRepositoryFactory) }); return(mongoUrl); } ServiceRegistry.Get(system) .RegisterService(new RegisterService( context.HostingEnvironment.ApplicationName, cluster.SelfUniqueAddress, ServiceTypes.Infrastructure)); var connectionstring = system.Settings.Config.GetString("akka.persistence.snapshot-store.mongodb.connection-string"); if (string.IsNullOrWhiteSpace(connectionstring)) { LogManager.GetCurrentClassLogger().Error("No Mongo DB Connection provided: Shutdown"); system.Terminate(); return; } var config = new SharpRepositoryConfiguration(); var fileSystemBuilder = new VirtualFileFactory(); ApplyMongoUrl(connectionstring, CleanUpManager.RepositoryKey, config); var url = ApplyMongoUrl(connectionstring, RepositoryManager.RepositoryKey, config); RepositoryManager.InitRepositoryManager(system, new RepositoryManagerConfiguration(config, fileSystemBuilder.CreateMongoDb(url), DataTransferManager.New(system, "Repository-DataTransfer"))); url = ApplyMongoUrl(connectionstring, DeploymentManager.RepositoryKey, config); DeploymentManager.InitDeploymentManager(system, new DeploymentConfiguration(config, fileSystemBuilder.CreateMongoDb(url), DataTransferManager.New(system, "Deployment-DataTransfer"), RepositoryApi.CreateProxy(system))); ApplyMongoUrl(connectionstring, ServiceManagerDeamon.RepositoryKey, config); ServiceManagerDeamon.Init(system, config); }) .OnMemberRemoved((_, system, _) => system.Terminate()); }, true)