Esempio n. 1
0
        public void TimerTrigger(TimerDetails td)
        {
            string jobName = td.JobName;

            if (jobWrappers.ContainsKey(jobName))
            {
                log.InfoFormat("Launching job {0} from timer", jobName);
                ((JobExeWrapper)jobWrappers[jobName]).ChangeMode(State.ExecutionModeEnum.Execution);
                LaunchJob(jobName, String.Empty);
            }
            else
                log.ErrorFormat("Job wrapper collection does not contain job {0}", jobName);
        }
Esempio n. 2
0
 private DateTime ResetInterval(TimerDetails details, DateTime runTimeStamp)
 {
     DateTime resetTime = DateTime.MinValue;
     if (details.LastRunTime.CompareTo(DateTime.MinValue) == 0)
         resetTime = runTimeStamp.AddMinutes(details.ResetInterval);
     else
         resetTime = details.LastRunTime.AddMinutes(details.ResetInterval);
     return resetTime;
 }
Esempio n. 3
0
        public override StateEnums.Status Initialize(IJob _job)
        {
            job = _job;
            TimerDetails details = new TimerDetails();

            details.JobName = jobName;
            details.AdapterType = "TimeManagerAdapter";
            details.ResetInterval = resetInterval;
            details.IfAutoReset = ifAutoReset;
            details.IfEnabled = ifEnabled;
            details.RunTime = startTime;
            details.SkipTodayIfPassed = job.JobDetails.SkipTodayIfPassed;
            details.WeeklySchedule = weeklySchedule;

            details.EarliestRunTime = earliestRunTime;
            details.LatestRunTime = latestRunTime;
            details.IsJamsEnabled = isJamsEnabled;

            this.timeManager.AddTimer(details);

            log.Info(_job.KeyHash, "JobScheduler initialized.");
            return StateEnums.Status.WaitingForFile;
        }
Esempio n. 4
0
		public void TimerTrigger(TimerDetails td)
		{
			string jobName = td.JobName;

			if (jobWrappers.ContainsKey(jobName))
			{
			    int numSecs = 1;
                while(jobWrappers[jobName].IsInititalized == false)
                {
                    log.WarnFormat("Waiting for job {0} to initialize before allowing it to execute...Wait time={1} secs", jobName, numSecs++);
                    Thread.Sleep(1000);
                }

				log.InfoFormat("Launching job {0} from timer", jobName);
				//((JobExeWrapper)jobWrappers[jobName]).ChangeMode(State.ExecutionMode.Execution);
                LaunchJob(jobName, String.Empty, StateEnums.ExecutionMode.Execution);
			}
			else
				log.ErrorFormat("Job wrapper collection does not contain job {0}", jobName);
		}
Esempio n. 5
0
        private static void GetInitialRunDateTime(TimerDetails details, ref DateTime runDate, ref DateTime earliestDate, ref DateTime latestDate)
        {
            ConvertTimestringToDateTime(ref earliestDate, ref details.EarliestRunTime);
            ConvertTimestringToDateTime(ref latestDate, ref details.LatestRunTime);

            string runTimeString = ParseRuntimeString(details);            

            ConvertTimestringToDateTime(ref runDate, ref runTimeString);

            if (DateTime.Now.CompareTo(runDate) > 0 &&
                details.SkipTodayIfPassed &&
                !details.RunTime.Equals("*IMMEDIATELY*"))
            {
                runDate = runDate.AddDays(1);
            }
        }
Esempio n. 6
0
 private static string ParseRuntimeString(TimerDetails details)
 {
     string runTimeString = "";
     if (details.RunTime.Equals("*IMMEDIATELY*"))
         runTimeString = DateTime.Now.ToString("hh:mm:ss tt");
     else if (TimeManager.InstanceOf().timerNamedSchedules.ContainsKey(details.RunTime))
         runTimeString = TimeManager.InstanceOf().timerNamedSchedules[details.RunTime];
     else
         runTimeString = details.RunTime;
     return runTimeString;
 }
Esempio n. 7
0
        private static bool IsDayOfWeekScheduled(TimerDetails details)
        {
            int dayOfWeek = (int)DateTime.Today.DayOfWeek;
            if (details.WeeklySchedule[dayOfWeek].Equals('-'))
                return false;
            else
            {
                int weekOfMonth = int.MinValue;
                bool testweekOfMonth = int.TryParse(details.WeeklySchedule[dayOfWeek].ToString(), out weekOfMonth);

                if (!testweekOfMonth)
                    return true;
                else
                {
                    if (DateTime.Today.Equals(FindDayOfMonth(dayOfWeek, weekOfMonth)))
                        return true;
                    else
                        return false;
                }
            }
        }
Esempio n. 8
0
 private bool EnsureValidTimer(BitsTimer timer, out TimerDetails details)
 {
     if (timerDetailsDictionary.ContainsKey(timer.Name) &&
         timerDetailsDictionary[timer.Name] != null)
     {
         details = timerDetailsDictionary[timer.Name];
     }
     else
     {
         log.WarnFormat("Timer details are not found ({0}).  Removing timer from collection.", timer.Name);
         TryRemoveTimer(timer);
         details = null;
         return false;
     }
     return true;
 }
Esempio n. 9
0
        public void AddTimer(IJob job, TimerDetails detail, bool autoStart)
        {
            ElapsedEventHandler elapsedEventHandler = new ElapsedEventHandler(EventReceivedHandler);

            //define timer
            BitsTimer timer = null;
            if (!timerDictionary.ContainsKey(detail.Key))
            {
                timer = new BitsTimer();
                timer.BeginInit();
                timer.AutoReset = detail.IfAutoReset;
                timer.Enabled = detail.IfEnabled && !detail.IsJamsEnabled;
                timer.Interval = detail.Interval;
                timer.Name = detail.JobName;
                timer.ScheduledTime = GetUniqueTime(timerDictionary, detail.RunTime);
                timer.WeeklySchedule = detail.WeeklySchedule;
                timer.Elapsed += elapsedEventHandler;
                timer.EndInit();

                lock (s_lock)
                {
                    timerDictionary[detail.Key] = timer;
                    timerDictionary[detail.Key] = timer;
                    timerDetailsDictionary[detail.JobName] = detail;
                }
                timerDictionary[detail.Key].Start();
            }
            else
                timer = timerDictionary[detail.Key];

            if (detail.JobName == null)
                detail.JobName = "GenericTimer";

            if (job != null)
                TimeManager.InstanceOf().timerJobs[timer.ToString()] = job.JobName;

            log.InfoFormat(@"Timer {0} created", timer.ToString());
        }
Esempio n. 10
0
 public void AddTimer(TimerDetails detail, bool autoStart)
 {
     AddTimer(null, detail, autoStart);
 }
Esempio n. 11
0
 public void AddTimer(TimerDetails detail)
 {
     AddTimer(detail, true);
 }