/// <summary> /// 设置进程复制重启 /// </summary> private void setProcessCopy() { if (!fastCSharp.config.pub.Default.IsService && fastCSharp.config.processCopy.Default.WatcherPath != null) { try { fileWatcher = new fastCSharp.io.createFlieTimeoutWatcher(fastCSharp.config.processCopy.Default.CheckTimeoutSeconds, onFileWatcherTimeout, fastCSharp.diagnostics.processCopyServer.DefaultFileWatcherFilter); fileWatcher.Add(fastCSharp.config.processCopy.Default.WatcherPath); } catch (Exception error) { log.Error.Add(error, fastCSharp.config.processCopy.Default.WatcherPath, false); } threadPool.TinyPool.Start(processCopyServer.Guard); } }
/// <summary> /// 设置TCP服务端 /// </summary> /// <param name="tcpServer">TCP服务端</param> public void SetTcpServer(fastCSharp.net.tcp.server tcpServer) { server = tcpServer; fileWatcher = new createFlieTimeoutWatcher(fastCSharp.config.processCopy.Default.CheckTimeoutSeconds, onFileWatcherTimeout, fastCSharp.diagnostics.processCopyServer.DefaultFileWatcherFilter); if (!fastCSharp.config.pub.Default.IsService && fastCSharp.config.processCopy.Default.WatcherPath != null) { try { fileWatcher.Add(fastCSharp.config.processCopy.Default.WatcherPath); } catch (Exception error) { log.Error.Add(error, fastCSharp.config.processCopy.Default.WatcherPath, false); } } if (IsLoadCache) { try { string cacheFileName = this.cacheFileName; if (File.Exists(cacheFileName)) { interlocked.NoCheckCompareSetSleep0(ref loadCacheLock); try { if (!IsLoadedCache) { saveInfo saveInfo = fastCSharp.emit.dataDeSerializer.DeSerialize<saveInfo>(File.ReadAllBytes(cacheFileName)); if (saveInfo.ForwardHost.Port != 0) setForward(saveInfo.ForwardHost); if (saveInfo.Domains.length() != 0) { foreach (saveInfo.domainServer domain in saveInfo.Domains) { try { start(domain.AssemblyPath, domain.ServerType, domain.Domains, domain.IsShareAssembly); } catch (Exception error) { log.Error.Add(error, null, false); } } } IsLoadedCache = true; } } finally { loadCacheLock = 0; } } } catch (Exception error) { log.Error.Add(error, null, false); } } }