コード例 #1
0
        /// <summary>
        /// 测试hangfire周期任务(httpjob)
        /// </summary>
        public void AddReJob()
        {
            var job = new HttpJobItem()
            {
                JobName          = "ReJob",
                QueueName        = "apis",
                Method           = "get",
                Url              = "https://www.baidu.com",
                IsRetry          = false,
                Corn             = "* * * * *",
                DelayFromMinutes = 0
            };

            RecurringJob.AddOrUpdate(job.JobName, () => Hangfire.HttpJob.Server.HttpJob.Excute(job, job.JobName, job.QueueName, job.IsRetry, null), job.Corn, TimeZoneInfo.Local);
        }
コード例 #2
0
        public ResponseModel <AddRecurringJobResponseModel> AddOrUpdateRecurringJob([FromBody] HttpJobItem httpJob)
        {
            ResponseModel <AddRecurringJobResponseModel> responseModel = new ResponseModel <AddRecurringJobResponseModel>();

            responseModel.ResultData = new AddRecurringJobResponseModel();

            try
            {
                RecurringJob.AddOrUpdate(httpJob.JobName, () => HttpJob.Excute(httpJob, httpJob.JobName, httpJob.QueueName, httpJob.IsRetry, null), httpJob.Cron, TimeZoneInfo.Local);

                responseModel.ResultData.Result = true;
            }
            catch (Exception ex)
            {
                responseModel.ResultCode = ResponseStatusCode.Error;
                responseModel.ResultDesc = ex.Message;
            }

            return(responseModel);
        }
コード例 #3
0
        public ResponseModel <AddScheduleJobResponseModel> AddScheduleJob([FromBody] HttpJobItem httpJob)
        {
            ResponseModel <AddScheduleJobResponseModel> responseModel = new ResponseModel <AddScheduleJobResponseModel>();

            responseModel.ResultData = new AddScheduleJobResponseModel();

            var reslut = string.Empty;

            try
            {
                reslut = BackgroundJob.Schedule(() => HttpJob.Excute(httpJob, httpJob.JobName, httpJob.QueueName, false, null), TimeSpan.FromMinutes(httpJob.DelayFromMinutes));

                responseModel.ResultData.JobId = reslut;
            }
            catch (Exception ex)
            {
                responseModel.ResultCode = ResponseStatusCode.Error;
                responseModel.ResultDesc = ex.Message;
            }

            return(responseModel);
        }
コード例 #4
0
        /// <summary>
        /// 测试计划任务(httpjob)
        /// </summary>
        /// <param name="minutes">多少分钟后执行</param>
        public virtual void AddJobTest(int minutes)
        {
            // 获取配置信息方式一,通过配置管理器

            var deminutes = Convert.ToInt32(_settingManager.GetSettingValue("config.defaultMinutes"));

            //获取配置信息方式二,通过配置文件接口获取
            var deminutes2 = Convert.ToInt32(_appConfigurtaionService.AppConfigurations.defaultMinutes);

            var job = new HttpJobItem()
            {
                JobName          = "PlanJob",
                QueueName        = "apis",
                Method           = "get",
                Url              = "https://www.baidu.com",
                IsRetry          = false,
                Corn             = "",
                DelayFromMinutes = minutes > 0 ? minutes : deminutes
            };

            BackgroundJob.Schedule(() => HttpJob.Excute(job, job.JobName, job.QueueName, job.IsRetry, null), TimeSpan.FromMinutes(job.DelayFromMinutes));
        }
コード例 #5
0
        public ResponseModel <AddBackgroundJobResponseModel> AddBackGroundJob([FromBody] HttpJobItem httpJob)
        {
            ResponseModel <AddBackgroundJobResponseModel> responseModel = new ResponseModel <AddBackgroundJobResponseModel>();

            responseModel.ResultData = new AddBackgroundJobResponseModel();

            var addreslut = string.Empty;

            try
            {
                addreslut = BackgroundJob.Enqueue(() => HttpJob.Excute(httpJob, httpJob.JobName, httpJob.QueueName, false, null));

                responseModel.ResultData.JobId = addreslut;
            }
            catch (Exception ex)
            {
                responseModel.ResultCode = ResponseStatusCode.Error;
                responseModel.ResultDesc = ex.Message;

                //return Json(new Message() { Code = false, ErrorMessage = ec.ToString() });
            }
            return(responseModel);
        }
コード例 #6
0
 /// <summary>
 /// 执行连续任务
 /// </summary>
 /// <param name="httpJob"></param>
 public void RunContinueJob(HttpJobItem httpJob)
 {
     BackgroundJob.Enqueue(() => HttpJob.Excute(httpJob, httpJob.JobName, httpJob.QueueName, false, null));
 }