protected override void OnStart(string[] args) { try { if (System.Configuration.ConfigurationSettings.AppSettings.AllKeys.Contains("NodeID")) { GlobalConfig.NodeID = Convert.ToInt32(System.Configuration.ConfigurationSettings.AppSettings["NodeID"]); } if (string.IsNullOrWhiteSpace(GlobalConfig.TaskDataBaseConnectString) || GlobalConfig.NodeID <= 0) { string url = GlobalConfig.TaskManagerWebUrl.TrimEnd('/') + "/OpenApi/" + "GetNodeConfigInfo/"; var r = ApiHelper.Post <dynamic>(url, new { }); if (r.success == false) { throw new Exception("请求" + url + "失败,请检查配置中“任务调度平台站点url”配置项"); } dynamic appconfiginfo = r.data; string connectstring = appconfiginfo["TaskDataBaseConnectString"]; connectstring = StringDESHelper.DecryptDES(connectstring, "dyd88888888"); if (string.IsNullOrWhiteSpace(GlobalConfig.TaskDataBaseConnectString)) { GlobalConfig.TaskDataBaseConnectString = connectstring; } if (GlobalConfig.NodeID <= 0) { GlobalConfig.NodeID = appconfiginfo["NodeID"]; } } BSF.Tool.IOHelper.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\" + GlobalConfig.TaskSharedDllsDir + @"\"); CommandQueueProcessor.Run(); //注册后台监控 GlobalConfig.Monitors.Add(new TaskManager.Node.SystemMonitor.TaskRecoverMonitor()); GlobalConfig.Monitors.Add(new TaskManager.Node.SystemMonitor.TaskPerformanceMonitor()); GlobalConfig.Monitors.Add(new TaskManager.Node.SystemMonitor.NodeHeartBeatMonitor()); GlobalConfig.Monitors.Add(new TaskManager.Node.SystemMonitor.TaskStopMonitor()); Node.Tools.LogHelper.AddNodeLog("节点windows服务启动成功"); } catch (Exception exp) { Node.Tools.LogHelper.AddNodeError("节点windows服务启动失败", exp); } }
static void Main() { var commandProcessor = new CommandQueueProcessor { Snapshots = new Queue <IMemento>() }; var order = new Order { List = new List <IProduct>() }; var addProductCommand = new AddProductCommand { Order = order, Product = new Product { Name = "First", Count = 10, Price = 100, Guid = Guid.NewGuid() } }; commandProcessor.AddCommandToExecute(addProductCommand); addProductCommand.Product = new Product { Count = 20, Price = 200, Guid = Guid.NewGuid(), Name = "Secon" }; commandProcessor.AddCommandToExecute(addProductCommand); addProductCommand.Product = new Product { Count = 30, Price = 300, Guid = Guid.NewGuid(), Name = "Third" }; commandProcessor.AddCommandToExecute(addProductCommand); commandProcessor.Run(); commandProcessor.Run(); commandProcessor.Run(); var getSumPriceCommand = new GetSumPriceCommand { Order = order }; commandProcessor.AddCommandToExecute(getSumPriceCommand); Console.Write(order.ToString()); Console.WriteLine(commandProcessor.Run()); Console.WriteLine("-----------------------------------------------------------------------"); commandProcessor.Undo(); commandProcessor.AddCommandToExecute(getSumPriceCommand); Console.Write(order.ToString()); Console.WriteLine(commandProcessor.Run()); Console.WriteLine("-----------------------------------------------------------------------"); commandProcessor.Undo(); commandProcessor.AddCommandToExecute(getSumPriceCommand); Console.Write(order.ToString()); Console.WriteLine(commandProcessor.Run()); Console.WriteLine("-----------------------------------------------------------------------"); }
protected override void OnStart(string[] args) { try { if (System.Configuration.ConfigurationManager.AppSettings.AllKeys.Contains("NodeID")) { GlobalConfig.NodeID = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["NodeID"]); } if (string.IsNullOrWhiteSpace(GlobalConfig.TaskDataBaseConnectString) || GlobalConfig.NodeID <= 0) { string url = GlobalConfig.TaskManagerWebUrl.TrimEnd('/') + "/OpenApi/" + "GetNodeConfigInfo/"; ClientResult r = ApiHelper.Get(url, new { }); if (r.success == false) { throw new Exception("请求" + url + "失败,请检查配置中“任务调度平台站点url”配置项"); } dynamic appconfiginfo = ApiHelper.Data(r); string connectstring = appconfiginfo.TaskDataBaseConnectString; appconfiginfo.TaskDataBaseConnectString = StringDESHelper.DecryptDES(connectstring, "dyd88888888"); if (string.IsNullOrWhiteSpace(GlobalConfig.TaskDataBaseConnectString)) { GlobalConfig.TaskDataBaseConnectString = appconfiginfo.TaskDataBaseConnectString; } if (GlobalConfig.NodeID <= 0) { GlobalConfig.NodeID = appconfiginfo.NodeID; } } XXF.Common.IOHelper.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\" + GlobalConfig.TaskSharedDllsDir + @"\"); CommandQueueProcessor.Run(); //注册后台监控 GlobalConfig.Monitors.Add(new Dyd.BaseService.TaskManager.Node.SystemMonitor.TaskRecoverMonitor()); GlobalConfig.Monitors.Add(new Dyd.BaseService.TaskManager.Node.SystemMonitor.TaskPerformanceMonitor()); GlobalConfig.Monitors.Add(new Dyd.BaseService.TaskManager.Node.SystemMonitor.NodeHeartBeatMonitor()); GlobalConfig.Monitors.Add(new Dyd.BaseService.TaskManager.Node.SystemMonitor.TaskStopMonitor()); Node.Tools.LogHelper.AddNodeLog("节点windows服务启动成功"); /* NamedPipeServer<string> server = new NamedPipeServer<string>("MyServerPipe"); * * server.ClientConnected += delegate(NamedPipeConnection<string> conn) * { * //Console.WriteLine("Client {0} is now connected!", conn.Id); * //conn. * // Node.Tools.LogHelper.AddTaskLog($"taskid connection pipename{}",tas); * * * * }; * * server.ClientMessage += delegate(NamedPipeConnection<string> conn, string message) * { * Console.WriteLine("Client {0} says: {1}", conn.Id, message.Text); * }; * * // Start up the server asynchronously and begin listening for connections. * // This method will return immediately while the server runs in a separate background thread. * server.Start();*/ } catch (Exception exp) { Node.Tools.LogHelper.AddNodeError("节点windows服务启动失败", exp); } }