Exemple #1
0
        public void Stop(Adf.Service.ServiceContext serviceContext)
        {
            try { this.cleanThread.Abort(); }
            catch { }

            this.csListen.Dispose();
        }
Exemple #2
0
        public void Start(Adf.Service.ServiceContext serviceContext)
        {
            this.servername = serviceContext.ServiceName;
            this.version    = this.GetType().Assembly.GetName().Version;
            //
            var cacheManagers = new CacheManager[HASH_POOL_SIZE];

            for (int i = 0; i < HASH_POOL_SIZE; i++)
            {
                cacheManagers[i] = new CacheManager();
            }
            Program.CacheManagers = cacheManagers;
            //
            var port = Adf.ConfigHelper.GetSettingAsInt("Port");

            if (port < 1)
            {
                serviceContext.LogManager.Error.WriteTimeLine("appSetting Port invalid");
                throw new System.Configuration.ConfigurationErrorsException("appSetting Port invalid");
            }
            //
            this.csListen = new Adf.Cs.ServerListen(serviceContext.LogManager);
            //
            this.cleanThread = new System.Threading.Thread(this.CleanHandler);
            this.cleanThread.IsBackground = true;
            this.cleanThread.Start(serviceContext.LogManager);
        }
Exemple #3
0
        public string Status(Adf.Service.ServiceContext serviceContext, System.Collections.Specialized.NameValueCollection queryString)
        {
            var htmlBuilder = new StringBuilder();

            htmlBuilder.AppendLine();
            htmlBuilder.AppendFormat("<div>Session Count: {0}</div>", this.listen.SessionCount);
            htmlBuilder.AppendLine();


            return(htmlBuilder.ToString());
        }
Exemple #4
0
        public void Start(Adf.Service.ServiceContext serviceContext)
        {
            this.listen = new Adf.Cs.ServerListen(serviceContext.LogManager);

            //if (serviceContext.Registry.Enable)
            //{
            //    var node = new Dictionary<string, object>();
            //    node.Add("group", serviceContext.Setting.ServiceName);
            //    node.Add("port", this.listen.Port);

            //    serviceContext.Registry.RegisterNode(node);
            //}
        }
Exemple #5
0
        //private static void Test()
        //{
        //    var size = 100000;
        //    var q = new Queue();
        //    for (int i = 1; i <= size; i++)
        //    {
        //        var item = new Item() { data = new byte[0], id = (ulong)i, duplicates = 0, queue = 1, expires = 1, command = 1 };
        //        q.Enqueue(item);
        //    }
        //    for (int i = 1; i <= size; i++)
        //    {
        //        var item = q.Dequeue();
        //        if (item.id != (ulong)i)
        //        {
        //        }
        //    }
        //}

        public void Start(Service.ServiceContext serviceContext)
        {
            Program.UPTIME = Adf.UnixTimestampHelper.ToInt64Timestamp();
            //
            var version = this.GetType().Assembly.GetName().Version;

            Program.VERSION = string.Concat(version.Major, ".", version.Minor, ".", version.Build);
            //
            Program.ServiceContext = serviceContext;
            Program.LogManager     = serviceContext.LogManager;
            //
            Program.DATA_PATH = Adf.ConfigHelper.GetSetting("DataPath");
            if (Program.DATA_PATH == "")
            {
                throw new ConfigException("no configuration DataPath item");
            }
            else if (System.IO.Directory.Exists(Program.DATA_PATH) == false)
            {
                System.IO.Directory.CreateDirectory(Program.DATA_PATH);
            }
            //
            Program.ActionProcessor = new QueueServer.ActionProcessor();
            Program.QueueManager    = new QueueServer.QueueManager();
            Program.JournalManager  = new QueueServer.JournalManager();
            ////20*10000 * 5120 = 950M
            ////允许20万个同时交换数, 允许最大消息包4KB, 预留1024字节于头
            //Program.BufferPool = new MemberPool<ArraySegment<byte>>(20 * 10000);
            //Program.BufferPool.Creater += () => { return new ArraySegment<byte>(new byte[5120]); };
            //
            serviceContext.LogManager.Message.WriteTimeLine("LogPath:" + serviceContext.LogManager.Path);
            serviceContext.LogManager.Message.WriteTimeLine("LogFlushInterval:" + serviceContext.LogManager.FlushInterval);
            serviceContext.LogManager.Message.WriteTimeLine("DataPath:" + Program.DATA_PATH);
            //
            if (serviceContext.HAEnable == true)
            {
                serviceContext.ToMaster  += new EventHandler(this.ToMaster);
                serviceContext.ToSlave   += new EventHandler(this.ToSlave);
                serviceContext.ToRestore += new EventHandler(this.ToRestore);
                serviceContext.ToWitness += new EventHandler(this.ToWitness);
            }
            else
            {
                this.Start();
            }
        }
Exemple #6
0
 public void Stop(Adf.Service.ServiceContext serviceContext)
 {
     this.listen.Dispose();
     this.listen = null;
 }
Exemple #7
0
 public void Initialize(Adf.Service.ServiceContext serviceContext)
 {
 }
Exemple #8
0
 public System.Net.HttpStatusCode HttpAction(string action, Adf.Service.ServiceContext serviceContext, Adf.HttpServerContext httpServerContext)
 {
     return(System.Net.HttpStatusCode.OK);
 }
Exemple #9
0
 public HttpHandler()
 {
     this.httpServer     = Program.ServiceContext.HttpServer;
     this.queueManager   = Program.QueueManager;
     this.serviceContext = Program.ServiceContext;
 }