Ejemplo n.º 1
0
        /// <summary>
        /// Thực thi chạy cập nhật trạng thái sản phẩm theo từ web quảng cáo
        /// </summary>
        /// <param name="schedules"></param>
        public void RunScheduleWeb(List <CronJobProductStatu> schedules)
        {
            _log.Info("Begin execute the scheduler for website");
            _log.Info(String.Format("Run Schedule Web - Number Schedule: {0:N}", schedules.Count));

            var scheduleUpdate = new List <CronJobProductStatu>();
            var index          = 0;

            foreach (var schedule in schedules)
            {
                // Đếm số lượng thực thi
                index++;

                // Thực thi post API cập nhật thông tin trạng thái sản phẩm
                var response = postAPI(schedule);
                // Lấy thông tin trạng thái lịch trình sau khi thực thi post API
                var scheduleDone = checkResponse(schedule, response);

                scheduleUpdate.Add(scheduleDone);
                _log.Info(String.Format("{0:N0} - Run Schedule Web - {1}", index, JsonConvert.SerializeObject(scheduleDone)));

                Thread.Sleep(500);
            }

            CronJobController.updateScheduleProductStatus(scheduleUpdate);
        }
Ejemplo n.º 2
0
        public static IM_PJ.Models.CronJob updateCronJob(IM_PJ.Models.CronJob cronNew)
        {
            // Cài đặt tên của cron job
            cronNew.Name = CRON_JOB_NAME;
            var cron = CronJobController.update(cronNew);

            return(cron);
        }
Ejemplo n.º 3
0
        private bool isPause()
        {
            var cron = CronJobController.get(CRON_NAME);

            if (cron != null)
            {
                return(cron.Status == 0 ? true : false);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 4
0
        public void ConfigureCron()
        {
            CronManager.Start();
            var jobs = CronManager.GetJobs();

            foreach (var job in jobs)
            {
                CronManager.RemoveJob(job.JobID);
            }

            var productStatus = new CreateScheduleProductStatus();

            CronManager.AddJob(productStatus);
            CronJobController.update("Product Status", productStatus.JobID);

            var websites = productStatus.getWebAdvertisements();

            foreach (var website in websites)
            {
                CronManager.AddJob(new RunScheduleProductStatus(website));
            }
        }
Ejemplo n.º 5
0
        public override void Execute()
        {
            try
            {
                _log.Info("Begin excute post API for the websites");

                // Nếu cron job được yêu cầu dưng lại thì sẽ không sử lý nữa
                if (isPause())
                {
                    _log.Info("Run Schedule Web - Cron Job Pause.");
                    return;
                }

                var schedules = CronJobController.getScheduleProductStatus(_website, (int)CronJobStatus.Scheduled, 80);
                _log.Info(String.Format("Run Schedule - Number Schedule: {0:N}", schedules.Count));

                if (schedules.Count > 0)
                {
                    // Lock các dữ liệu chuẩn bị start
                    schedules = schedules.Select(x =>
                    {
                        x.Status = (int)CronJobStatus.Start;
                        return(x);
                    })
                                .ToList();
                    CronJobController.updateScheduleProductStatus(schedules);

                    // Chạy post API
                    RunScheduleWeb(schedules);
                }

                _log.Info("End excute post API for the websites");
            }
            catch (ThreadAbortException)
            {
                Thread.ResetAbort();
            }
        }
Ejemplo n.º 6
0
        public void LoadData()
        {
            if (acc != null)
            {
                DateTime DateConfig = new DateTime(2018, 6, 22);

                DateTime fromDate = DateConfig;
                DateTime toDate   = DateTime.Now;

                if (!String.IsNullOrEmpty(Request.QueryString["fromdate"]))
                {
                    fromDate = Convert.ToDateTime(Request.QueryString["fromdate"]);
                }

                if (!String.IsNullOrEmpty(Request.QueryString["todate"]))
                {
                    toDate = Convert.ToDateTime(Request.QueryString["todate"]).AddDays(1).AddMinutes(-1);
                }

                rFromDate.SelectedDate = fromDate;
                rFromDate.MinDate      = DateConfig;
                rFromDate.MaxDate      = DateTime.Now;

                rToDate.SelectedDate = toDate;
                rToDate.MinDate      = DateConfig;
                rToDate.MaxDate      = DateTime.Now;

                var search       = String.Empty;
                var web          = String.Empty;
                var status       = 0;
                var category     = 0;
                var isHidden     = (Nullable <bool>)null;
                var showHomePage = String.Empty;
                var sort         = String.Empty;
                var Page         = 1;

                if (Request.QueryString["search"] != null)
                {
                    search = Request.QueryString["search"].Trim();
                }
                if (Request.QueryString["web"] != null)
                {
                    web = Request.QueryString["web"];
                }
                if (Request.QueryString["status"] != null)
                {
                    status = Request.QueryString["status"].ToInt();
                }
                if (Request.QueryString["category"] != null)
                {
                    category = Request.QueryString["category"].ToInt();
                }
                if (!String.IsNullOrEmpty(Request.QueryString["isHidden"]))
                {
                    isHidden = Request.QueryString["isHidden"].ToBool();
                }
                if (Request.QueryString["showhomepage"] != null)
                {
                    showHomePage = Request.QueryString["showhomepage"];
                }
                if (Request.QueryString["sort"] != null)
                {
                    sort = Request.QueryString["sort"];
                }
                if (Request.QueryString["Page"] != null)
                {
                    Page = Request.QueryString["Page"].ToInt();
                }

                txtSearchProduct.Text             = search;
                ddlWebAdvertisement.SelectedValue = web;
                ddlProductStatus.SelectedValue    = isHidden.HasValue ? (isHidden.Value ? "true" : "false") : "";
                ddlScheduleStatus.SelectedValue   = status.ToString();
                ddlShowHomePage.SelectedValue     = showHomePage;
                ddlCategory.SelectedValue         = category.ToString();
                ddlSort.SelectedValue             = sort;

                // Create order fileter
                var filter = new FilterModel()
                {
                    search       = search,
                    web          = web,
                    status       = status,
                    fromDate     = fromDate,
                    toDate       = toDate,
                    category     = category,
                    isHidden     = isHidden,
                    showHomePage = showHomePage,
                    sort         = sort
                };
                // Create pagination
                var page = new PaginationMetadataModel()
                {
                    currentPage = Page
                };
                var data = CronJobController.getScheduleProductStatus(filter, ref page);

                pagingall(data, page);

                ltrNumberOfSchedule.Text = page.totalCount.ToString();
            }
        }
Ejemplo n.º 7
0
        public static IM_PJ.Models.CronJob getCronJob()
        {
            var cron = CronJobController.get(CRON_JOB_NAME);

            return(cron);
        }