示例#1
0
        private void StartAutomation()
        {
            var configurationPath = Path.Combine(this.Environment.ContentRootPath, "configuration.json");

            if (!File.Exists(configurationPath))
            {
                Log.Error($"Cannot find the configuration file {configurationPath} to register jobs.");
                return;
            }

            var configuration = AutomationConfiguration.Read(configurationPath);

            foreach (var job in configuration.Jobs.Where(job => job.RunAtStartup))
            {
                BackgroundJob.Enqueue <AutomationRunner>(automation => automation.RunAtStartup(configuration, job));
            }

            foreach (var job in configuration.Jobs)
            {
                RecurringJob.RemoveIfExists(job.Id);
            }

            foreach (var job in configuration.Jobs.Where(job => !string.IsNullOrWhiteSpace(job.CronSchedule)))
            {
                RecurringJob.AddOrUpdate <AutomationRunner>(job.Id, automation => automation.RunRecurring(configuration, job), job.CronSchedule, TimeZoneInfo.Utc);
            }
        }
示例#2
0
        /// <summary>
        /// Start the program.
        /// </summary>
        /// <param name="args">Arguments of the console.</param>
        private static void Main(string[] args)
        {
            var log4netConfig = new XmlDocument();

            log4netConfig.Load(File.OpenRead("log4net.config"));
            var repo = LogManager.CreateRepository(Assembly.GetEntryAssembly(), typeof(Hierarchy));

            XmlConfigurator.Configure(repo, log4netConfig["log4net"]);

            Log.Info("START CONSOLE");

            var path          = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "configuration.json");
            var configuration = AutomationConfiguration.Read(path);

            foreach (var job in configuration.Jobs.Where(job => job.RunAtStartup))
            {
                new JobRunner().RunAtStartup(configuration, job);
            }

            Log.Info("STOP CONSOLE");
        }