Example #1
0
        public static void ReSchedule(string guid)
        {
            var task = JobRepository.GetByGuid(guid);
            var job  = JobRepository.SetTaskOneTimeOnly(guid, task.Alias, task.Data);

            JobScheduler.LaunchJob <JobList.CommandJob>(guid);
        }
Example #2
0
        public static void LaunchJob <T>(string guid) where T : IJob
        {
            var        _task = JobRepository.GetByGuid(guid);
            IJobDetail task  = JobBuilder.Create <T>()
                               .WithIdentity(_task.Alias, Guid.NewGuid().ToString())
                               .UsingJobData("data", _task.Data)
                               .UsingJobData("jobID", _task.Guid)
                               .Build();
            ITrigger trigger;

            switch (_task.TriggerPeriod)
            {
            case TriggerPeriod.IsOneTimeOnly:
                trigger = DefineOneTimeOnlyTrigger(_task.Alias, _task.StartTime);
                break;

            case TriggerPeriod.IsCron:
                trigger = DefineCronTrigger(_task.Alias, _task.StartTime, _task.CronExpression);
                break;

            case TriggerPeriod.WithInterval:
                trigger = DefineIntervalTrigger(_task.Alias, _task.StartTime, _task.IntervalType, _task.IntervalSpan, _task.Count);
                break;

            default:
                trigger = DefineDefaultTrigger(_task.Alias);
                break;
            }
            __scheduler.ScheduleJob(task, trigger);
        }
Example #3
0
        public static void Schedule(string jobName, string command, string cron)
        {
            var guid = Guid.NewGuid().ToString();

            string[] data = new string[] {
                command.GetFirstString(),
                     command.GetAllStringsButFirst()
            };
            string dataJson = JsonConvert.SerializeObject(data);
            var    job      = JobRepository.SetTaskCron(guid, jobName, dataJson, cron);

            Thread.Sleep(20);
            JobScheduler.LaunchJob <JobList.CommandJob>(guid);
        }
Example #4
0
            public void Execute(IJobExecutionContext context)
            {
                JobKey     key      = context.JobDetail.Key;
                JobDataMap dataMap  = context.JobDetail.JobDataMap;
                string     dataJson = dataMap.GetString("data");

                string[]     data      = JsonConvert.DeserializeObject <string[]>(dataJson);
                string       command   = data[0];
                string       arguments = data[1];
                string       jobId     = dataMap.GetString("jobID");
                CommandModel cmd       = Command.Launch(command, arguments);
                string       output    = cmd.output;

                JobRepository.AddResult(jobId, output);
            }
Example #5
0
 public static void Start(bool _recoverTasks)
 {
     if (_recoverTasks == false)
     {
         __scheduler.Start();
     }
     else
     {
         __scheduler.Start();
         List <JobModel> taskList = JobRepository.GetEnabled();
         ConsoleLogger.Log("{0} job(s) scheduled", taskList.ToArray().Length);
         if (taskList.ToArray().Length > 0)
         {
             foreach (JobModel task in taskList)
             {
                 if (task != null)
                 {
                     LaunchJob <JobList.CommandJob>(task.Guid);
                 }
             }
         }
     }
 }