private static void InitShiftServer() { var config = new Shift.ServerConfig(); config.AssemblyFolder = ConfigurationManager.AppSettings["AssemblyFolder"]; //config.AssemblyListPath = ConfigurationManager.AppSettings["AssemblyListPath"]; config.MaxRunnableJobs = Convert.ToInt32(ConfigurationManager.AppSettings["MaxRunnableJobs"]); //config.ProcessID = ConfigurationManager.AppSettings["ShiftPID"]; //demo/testing ID config.DBConnectionString = ConfigurationManager.ConnectionStrings["ShiftDBConnection"].ConnectionString; config.DBAuthKey = ConfigurationManager.AppSettings["DocumentDBAuthKey"]; config.Workers = Convert.ToInt32(ConfigurationManager.AppSettings["ShiftWorkers"]); config.StorageMode = ConfigurationManager.AppSettings["StorageMode"]; var progressDBInterval = ConfigurationManager.AppSettings["ProgressDBInterval"]; if (!string.IsNullOrWhiteSpace(progressDBInterval)) { config.ProgressDBInterval = TimeSpan.Parse(progressDBInterval); //Interval when progress is updated in main DB } var autoDeletePeriod = ConfigurationManager.AppSettings["AutoDeletePeriod"]; config.AutoDeletePeriod = string.IsNullOrWhiteSpace(autoDeletePeriod) ? null : (int?)Convert.ToInt32(autoDeletePeriod); //config.AutoDeleteStatus = new List<JobStatus?> { JobStatus.Completed, JobStatus.Error }; //Auto delete only the jobs that has completed or with error. config.ForceStopServer = Convert.ToBoolean(ConfigurationManager.AppSettings["ForceStopServer"]); //Set to true to allow windows service to shut down after a set delay in StopServerDelay config.StopServerDelay = Convert.ToInt32(ConfigurationManager.AppSettings["StopServerDelay"]); //config.EncryptionKey = "[OPTIONAL_ENCRYPTIONKEY]"; //optional, will encrypt parameters in DB if filled config.PollingOnce = Convert.ToBoolean(ConfigurationManager.AppSettings["PollingOnce"]); jobServer = new JobServer(config); }
public ShiftService() { InitializeComponent(); var appServiceName = ConfigurationManager.AppSettings["ServiceName"]; if (jobServer == null) { var config = new Shift.ServerConfig(); config.MaxRunnableJobs = Convert.ToInt32(ConfigurationManager.AppSettings["MaxRunableJobs"]); //config.ProcessID = ConfigurationManager.AppSettings["ShiftPID"]; config.DBConnectionString = ConfigurationManager.ConnectionStrings["ShiftDBConnection"].ConnectionString; config.DBAuthKey = ConfigurationManager.AppSettings["DocumentDBAuthKey"]; config.Workers = Convert.ToInt32(ConfigurationManager.AppSettings["ShiftWorkers"]); config.StorageMode = ConfigurationManager.AppSettings["StorageMode"]; var progressDBInterval = ConfigurationManager.AppSettings["ProgressDBInterval"]; if (!string.IsNullOrWhiteSpace(progressDBInterval)) { config.ProgressDBInterval = TimeSpan.Parse(progressDBInterval); //Interval when progress is updated in main DB } var autoDeletePeriod = ConfigurationManager.AppSettings["AutoDeletePeriod"]; config.AutoDeletePeriod = string.IsNullOrWhiteSpace(autoDeletePeriod) ? null : (int?)Convert.ToInt32(autoDeletePeriod); config.AssemblyFolder = ConfigurationManager.AppSettings["AssemblyFolder"]; //config.AssemblyListPath = ConfigurationManager.AppSettings["AssemblyListPath"]; config.ForceStopServer = Convert.ToBoolean(ConfigurationManager.AppSettings["ForceStopServer"]); //Set to true to allow windows service to shut down after a set delay in StopServerDelay config.StopServerDelay = Convert.ToInt32(ConfigurationManager.AppSettings["StopServerDelay"]); config.ServerTimerInterval = Convert.ToInt32(ConfigurationManager.AppSettings["TimerInterval"]); //optional: default every 5 sec for getting jobs ready to run and run them config.ServerTimerInterval2 = Convert.ToInt32(ConfigurationManager.AppSettings["CleanUpTimerInterval"]); //optional: default every 10 sec for server CleanUp() //config.AutoDeleteStatus = new List<JobStatus?> { JobStatus.Completed, JobStatus.Error }; //Auto delete only the jobs that had Stopped or with Error //config.EncryptionKey = ConfigurationManager.AppSettings["ShiftEncryptionParametersKey"]; config.PollingOnce = Convert.ToBoolean(ConfigurationManager.AppSettings["PollingOnce"]); jobServer = new Shift.JobServer(config); } this.ServiceName = appServiceName; }