예제 #1
0
        public void Start()
        {
            var jsonStr = Req(new { Cmd = "getconfig" }, 10);

            var json = JObject.Parse(jsonStr);

            ConfigJson = json;
            if (Logger.IsInfoEnabled)
            {
                Logger.Info(jsonStr);
            }

            _districtContainer = GetDistrictContainer(json);
            _districtContainer.InitContainers(new ContainerBuilder());

            if (!json["Configs"].HasValues)
            {
                Req(new
                {
                    Cmd  = "configs",
                    List = _districtContainer.GetDistrictConfigs()
                });

                AddJobs();
            }


            poller = new NetMQPoller();

            for (int i = 0; i < 2; i++)
            {
                Task.Factory.StartNew(WorkerTask, _frontendConnect, _c_token.Token);
            }

            poller.RunAsync();
        }
예제 #2
0
        public void Execute(IDistrictContainer container, IDistrictConfig config)
        {
            if (Logger.IsDebugEnabled)
            {
                Logger.Debug($"TASK [{typeof(T).Name}] START!");
            }

            if (!Continue())
            {
                if (Logger.IsDebugEnabled)
                {
                    Logger.Debug($"{typeof(T).Name} NOT Continue!");
                }

                return;
            }

            SubJob(container, config);

            if (Logger.IsDebugEnabled)
            {
                Logger.Debug($"TASK [{typeof(T).Name}] DONE!");
            }
        }
예제 #3
0
 protected abstract void SubJob(IDistrictContainer container, IDistrictConfig config);
예제 #4
0
 public TestActorService(ActorConfig config, IDistrictContainer serverContainer) : base(serverContainer)
 {
 }
예제 #5
0
 protected override void SubJob(IDistrictContainer container, IDistrictConfig config)
 {
     Console.WriteLine(DateTime.UtcNow);
 }
예제 #6
0
 public ActorService(IDistrictContainer districtContainer)
 {
     DistrictContainer = districtContainer;
 }