示例#1
0
        static void Main(string[] args)
        {
            var minLevel = LogLevel.Info;

            var debugMode = args.Any(c => c.Equals("debug", StringComparison.CurrentCultureIgnoreCase));

            var config = new NLog.Config.LoggingConfiguration();

            // Targets where to log to: File and Console
            var logFile = new NLog.Targets.FileTarget("logfile")
            {
                FileName = ".log"
            };
            var logConsole = new NLog.Targets.ConsoleTarget("logconsole");

            // Rules for mapping loggers to targets
            if (debugMode)
            {
                minLevel = LogLevel.Debug;
                config.AddRule(LogLevel.Trace, LogLevel.Fatal, logConsole);
            }
            config.AddRule(minLevel, LogLevel.Fatal, logFile);


            // Apply config
            LogManager.Configuration = config;

            //
            CronWorker.Start();
            Thread.Sleep(Timeout.Infinite);
        }
示例#2
0
        public void RunTest()
        {
            var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments),
                                    ".cron", "cron.xml");
            var settings = new XmlSerializer <CronSettings>(path).Get();
            var worker   = new CronWorker(settings.SmtpSettings, new ConsoleLogger());

            worker.Run();
        }
示例#3
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplicationLifetime lifetime)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

            app.UseAuthentication();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

            var services      = app.ApplicationServices;
            var jobService    = services.GetRequiredService <IJobService>();
            var jobRegistry   = services.GetRequiredService <IJobRegistry>();
            var lockFactory   = services.GetRequiredService <ILockFactory>();
            var aciService    = services.GetRequiredService <IACIService>();
            var loggerFactory = services.GetRequiredService <ILoggerFactory>();

            var cronWorker  = new CronWorker(jobService, jobRegistry, lockFactory, aciService, loggerFactory.CreateLogger("CronWorker"));
            var queueWorker = new QueueWorker(jobService, jobRegistry, lockFactory, aciService, loggerFactory.CreateLogger("QueueWorker"));

            lifetime.ApplicationStopping.Register(() => {
                cronWorker.Stop();
                queueWorker.Stop();
            });

            cronWorker.Start();
            queueWorker.Start();
        }