static void WorkSessionAdminTools_Disposed(IWorkSession workSession, DocumentDiagnosticEventArgs e) { WorkSessionMessenger.SendMessage(MessageOperation.RemoveWorkSession, workSession.ID, workSession.DocumentInfo.DocumentId); #if DEBUG Log(workSession, "Remove"); #endif }
static void WorkSessionAdminTools_Created(IWorkSession workSession, DocumentDiagnosticEventArgs e) { WorkSessionMessenger.SendMessage(MessageOperation.AddWorkSession, workSession.ID, workSession.DocumentInfo.DocumentId); #if DEBUG Log(workSession, "Add"); #endif }
static void WorkSessionAdminTools_WokeUp(IWorkSession workSession, DocumentDiagnosticEventArgs e) { WorkSessionMessenger.SendMessage(MessageOperation.WakeUpWorkSession, workSession.ID, workSession.DocumentInfo.DocumentId); #if DEBUG Log(workSession, "WokenUp"); #endif }
static void NotifyRoutingServer() { var serverStateTask = Task.Run(async() => { while (!IsRoutingRoleRunning()) { await Task.Delay(1000); } WorkSessionMessenger.SendMessage(MessageOperation.RegisterServer, new List <WorkSessionServerInfo>()); }); }
private static void OnServerNumberDecreased(List <WorkSessionServerInfo> servers) { List <WorkSessionServerInfo> selfEvent = servers.Where(s => s.RoleInstanceId == RoleEnvironment.CurrentRoleInstance.Id).ToList(); if (selfEvent.Count() > 0) { WorkSessionMessenger.SendMessage(MessageOperation.UnregisterServer, new List <WorkSessionServerInfo>()); InterRoleCommunicator.ShutDown(); DevExpress.Web.Office.DocumentManager.HibernateAllDocuments(); } }
private static void OnRoleInstanceNumberChanged(int number) { if (number < 0) { List <WorkSessionServerInfo> affectedServers = new List <WorkSessionServerInfo>(); RoutingTable.ForEachWorkSessionServer((roleInstanceId, serverInfo) => { if (serverInfo.IsProbablyShuttingDown()) { affectedServers.Add(serverInfo); } }); WorkSessionMessenger.SendMessage(MessageOperation.ServerNumberDecreased, affectedServers); } }
static void SendShutdownNotification() { WorkSessionMessenger.SendMessage(MessageOperation.UnregisterServer, new List <WorkSessionServerInfo>()); }
static void NotifyServers(MessageOperation operation) { WorkSessionMessenger.SendMessage(operation, new List <WorkSessionServerInfo>()); }