コード例 #1
0
        private void AddJob(IJobTask task)
        {
            var qParams = new QueueParams(task.Tag.NoHashTag, hangfireSettings.Value.ServerName);

            task = new TwitterJobTask(task.Tag, qParams, settings.Value.TwitterMessagePublishDelay);
            jobManager.AddJob(task);
        }
コード例 #2
0
 public ICommandResult DeleteJob(IJobTask task)
 {
     RecurringJob.RemoveIfExists(task.JobId);
     return(new CommandResult {
         Success = true
     });
 }
コード例 #3
0
		public void Execute()
		{
			StartExecute();

			foreach(var task in JobTasks())
			{
                if(task == null)
                {
                    continue;
                }
				if (m_cancelToken.IsCancellationRequested)
				{
					CancelExecute();
					break;
				}
				this.m_lastJobTask = task;

                this.OutCome = task.Execute(m_cancelToken.Token);

                if (this.OutCome != JobStepOutCome.Succeeded)
				{
					break;
				}
			}
			CompleteExecute();
		}
コード例 #4
0
        private bool CheckJobLimitExceeded(IJobTask task)
        {
            var list    = accessor.GetJobsList();
            var isValid = list.Any(x => x.Id.Equals(task.JobId));

            return(isValid || list.Count >= appSettings.Value.MaxReccuringJobsSupported);
        }
コード例 #5
0
        public void Execute()
        {
            StartExecute();

            foreach (var task in JobTasks())
            {
                if (task == null)
                {
                    continue;
                }
                if (m_cancelToken.IsCancellationRequested)
                {
                    CancelExecute();
                    break;
                }
                this.m_lastJobTask = task;

                this.OutCome = task.Execute(m_cancelToken.Token);

                if (this.OutCome != JobStepOutCome.Succeeded)
                {
                    break;
                }
            }
            CompleteExecute();
        }
コード例 #6
0
        public static void Run(IJobTask jobTask)
        {
            Task task = new Task(jobTask.Execute, jobTask);

            task.ContinueWith(jobTask.CallBack);
            task.Start();
        }
コード例 #7
0
 public Job(IJobTask task, DateTime timeStart, double interval, int intervalType, string name,
            object taskParameters, string key = null)
 {
     Name           = name;
     TaskParameters = taskParameters;
     Task           = task;
     Schedule       = new Schedule(timeStart, intervalType, interval);
     Key            = key ?? Guid.NewGuid().ToString();
 }
コード例 #8
0
 public ICommandResult AddJob(IJobTask task)
 {
     RecurringJob.AddOrUpdate <ITwitterJob>(
         task.JobId,
         x => x.Execute((TwitterJobTask)task),
         Cron.MinuteInterval(task.Interval));
     return(new CommandResult {
         Success = true
     });
 }
コード例 #9
0
ファイル: Program.cs プロジェクト: joyfar/MyJobService
 static void RunJob(Object state)
 {
     try
     {
         JobConfig config = (JobConfig)state;
         IJobTask  job    = (IJobTask)Activator.CreateInstance(Type.GetType(config.TypeName));
         job.Init(config);
         job.Run();
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.ToString());
     }
 }
コード例 #10
0
        public IJobTask CreateTask(IContext db, JobStep taskStep)
        {
            IJobTask task = null;

            if (taskStep == null)
            {
                return(null);
            }

            if (m_taskPlugins.ContainsKey(taskStep.SubSystem) == false)
            {
                m_logger.Warn("Unable to locate specified Subsystem [{0}]", taskStep.SubSystem);
                return(null);
            }
            var t = m_taskPlugins[taskStep.SubSystem];

            task = (IJobTask)Activator.CreateInstance(t);
            return(task.Create(db, taskStep, m_logger));
        }
コード例 #11
0
        public async Task Execute(IServiceProvider serviceProvider)
        {
            AuditStart();

            using (var scope = serviceProvider.CreateScope())
            {
                IJobTask executorTask = scope.ServiceProvider.GetRequiredService <ServiceResolver>()(this.MetaData.Name);
                try
                {
                    await executorTask.Worker();

                    AuditSuccess();
                } catch (Exception e)
                {
                    // save error details
                    AuditFail(e.Message);
                }
            }
        }
コード例 #12
0
 public ICommandResult ReconfigureJob(IJobTask task)
 {
     throw new NotImplementedException();
 }
コード例 #13
0
 public async Task <ICommandResult> StartNow(IJobTask task)
 {
     return(await job.Execute((TwitterJobTask)task));
 }
コード例 #14
0
 public void RunTask(Task task)
 {
     task.Start();
     IJobTask jobTask = (IJobTask)task.AsyncState;
 }