コード例 #1
0
        /// <summary>开始工作</summary>
        /// <param name="reason"></param>
        protected override void StartWork(String reason)
        {
            // 配置APM性能跟踪器
            var set = Stardust.Setting.Current;

            if (!set.Server.IsNullOrEmpty())
            {
                // 配置指向星尘监控中心
                var tracer = new StarTracer(set.Server)
                {
                    Log = XTrace.Log
                };
                DefaultTracer.Instance = tracer;
                ApiHelper.Tracer       = tracer;
                DAL.GlobalTracer       = tracer;
                Tracer = tracer;
            }

            InitNetServer();
            InitRpcServer();

            _timer1 = new TimerX(s => ShowStat(), null, 1000, 1000)
            {
                Async = true
            };
            _timer2 = new TimerX(s => SendTime(_netServer), null, 1000, 1000)
            {
                Async = true
            };

            base.StartWork(reason);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: bulu2017/NewLife.Zero
        /// <summary>开始工作</summary>
        /// <param name="reason"></param>
        protected override void StartWork(String reason)
        {
            WriteLog("业务开始……");

            // 配置APM性能跟踪器
            var set = Setting.Current;

            if (!set.TracerServer.IsNullOrEmpty())
            {
                // 配置指向星尘监控中心
                var tracer = new StarTracer(set.TracerServer)
                {
                    Log = XTrace.Log
                };
                DefaultTracer.Instance = tracer;
                ApiHelper.Tracer       = tracer;
                DAL.GlobalTracer       = tracer;
                Tracer = tracer;
            }

            // 5秒开始,每60秒执行一次
            _timer = new TimerX(DoWork1, null, 5_000, 60_000)
            {
                Async = true
            };
            // 每天凌晨2点13分执行一次
            _timer2 = new TimerX(DoWork2, null, DateTime.Today.AddMinutes(2 * 60 + 13), 24 * 3600 * 1000)
            {
                Async = true
            };

            base.StartWork(reason);
        }
コード例 #3
0
ファイル: Startup.cs プロジェクト: zhangbo27/NewLife.Zero
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var server = Stardust.Setting.Current.Server;

            if (server.IsNullOrEmpty())
            {
                server = "http://star.newlifex.com:6600";
            }

            // APM跟踪器
            var tracer = new StarTracer(server)
            {
                Log = XTrace.Log
            };

            DefaultTracer.Instance  = tracer;
            ApiHelper.Tracer        = tracer;
            DAL.GlobalTracer        = tracer;
            TracerMiddleware.Tracer = tracer;

            services.AddSingleton <ITracer>(tracer);

            // 引入Redis,用于消息队列和缓存,单例,带性能跟踪
            var rds = new FullRedis {
                Tracer = tracer
            };

            rds.Init("server=127.0.0.1:6379;password=;db=3;timeout=5000");
            services.AddSingleton <ICache>(rds);
            services.AddSingleton(rds);

            services.AddControllers();
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: azhe127/Stardust
        static void Test2()
        {
            //var tracer = new StarTracer { Log = XTrace.Log };
            //var http = tracer.CreateHttpClient();
            //http.GetStringAsync("https://x.newlifex.com").Wait();

            //Thread.Sleep(10_000);

            var tracer = StarTracer.Register();
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: liupster/Stardust
        private void StartClient()
        {
            var set    = Setting.Current;
            var server = Stardust.Setting.Current.Server;

            if (server.IsNullOrEmpty())
            {
                return;
            }

            WriteLog("初始化服务端地址:{0}", server);

            var client = new StarClient(server)
            {
                Code   = set.Code,
                Secret = set.Secret,
                Log    = XTrace.Log,
            };

            // 登录后保存证书
            client.OnLogined += (s, e) =>
            {
                var inf = client.Info;
                if (inf != null && !inf.Code.IsNullOrEmpty())
                {
                    set.Code   = inf.Code;
                    set.Secret = inf.Secret;
                    set.Save();
                }
            };

            // APM埋点。独立应用名
            var tracer = new StarTracer
            {
                AppId = "StarAgent",
                //AppSecret = null,
                Client = new ApiHttpClient(server),
                Log    = XTrace.Log
            };

            DefaultTracer.Instance = tracer;
            ApiHelper.Tracer       = tracer;
            client.Tracer          = tracer;

            // 使用跟踪
            client.UseTrace();

            _Client = client;

            // 可能需要多次尝试
            _timer = new TimerX(TryConnectServer, client, 0, 5_000)
            {
                Async = true
            };
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: bulu2017/NewLife.Zero
        /// <summary>开始工作</summary>
        /// <param name="reason"></param>
        protected override void StartWork(String reason)
        {
            WriteLog("业务开始……");

            // 配置APM性能跟踪器
            var set = Setting.Current;

            if (!set.TracerServer.IsNullOrEmpty())
            {
                // 配置指向星尘监控中心
                var tracer = new StarTracer(set.TracerServer)
                {
                    Log = XTrace.Log
                };
                DefaultTracer.Instance = tracer;
                ApiHelper.Tracer       = tracer;
                DAL.GlobalTracer       = tracer;
                Tracer = tracer;
            }

            var set2 = AntSetting.Current;

            // 实例化调度器
            var sc = new Scheduler
            {
                Tracer = Tracer,

                // 使用分布式调度引擎替换默认的本地文件调度
                Provider = new NetworkJobProvider
                {
                    Debug  = set2.Debug,
                    Server = set2.Server,
                    AppID  = set2.AppID,
                    Secret = set2.Secret,
                }
            };

            // 添加作业处理器
            //sc.Handlers.Add(new SqlHandler());
            //sc.Handlers.Add(new SqlMessage());
            sc.Handlers.Add(new HelloJob());
            sc.Handlers.Add(new BuildProduct());
            sc.Handlers.Add(new BuildPlan());

            // 启动调度引擎,调度器内部多线程处理
            sc.Start();

            _Scheduler = sc;

            base.StartWork(reason);
        }
コード例 #7
0
        public void ConfigureServices(IServiceCollection services)
        {
            // APM跟踪器
            var tracer = new StarTracer("http://star.newlifex.com:6600")
            {
                Log = XTrace.Log
            };

            DefaultTracer.Instance = tracer;
            //ApiHelper.Tracer = tracer;
            //DAL.GlobalTracer = tracer;
            //OAuthClient.Tracer = tracer;
            TracerMiddleware.Tracer = tracer;

            services.AddSingleton <ITracer>(tracer);

            services.AddCube();
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: zhangbo27/NewLife.Zero
        static ITracer InitTracer(IObjectContainer services)
        {
            var server = Stardust.Setting.Current.Server;

            if (server.IsNullOrEmpty())
            {
                server = "http://star.newlifex.com:6600";
            }

            // 星尘监控,性能跟踪器
            var tracer = new StarTracer(server)
            {
                Log = XTrace.Log
            };

            DefaultTracer.Instance = tracer;
            ApiHelper.Tracer       = tracer;
            DAL.GlobalTracer       = tracer;

            services.AddSingleton <ITracer>(tracer);

            return(tracer);
        }
コード例 #9
0
        public void ConfigureServices(IServiceCollection services)
        {
            var set = Stardust.Setting.Current;

            if (!set.Server.IsNullOrEmpty())
            {
                // APM跟踪器
                var tracer = new StarTracer(set.Server)
                {
                    Log = XTrace.Log
                };
                DefaultTracer.Instance  = tracer;
                ApiHelper.Tracer        = tracer;
                DAL.GlobalTracer        = tracer;
                OAuthClient.Tracer      = tracer;
                TracerMiddleware.Tracer = tracer;

                services.AddSingleton <ITracer>(tracer);
            }

            services.AddControllersWithViews();
            services.AddCube();
        }