コード例 #1
0
 // Flip the bit field in the Scheduled Task Queue
 public static void UpdateBitField(Guid taskId, int bit)
 {
     using (IDatabase db = new NPocoDatabase("CommunicationCenter")) {
         var sql = Sql.Builder;
         sql.Append(ScheduledTaskTSQL.UpdateActiveBit(), new { @bitfield = bit, @taskId = taskId });
         db.Execute(sql);
     }
 }
コード例 #2
0
 // Flip the bit field in the Scheduled Task Queue
 public static void UpdateTaskStatus(Guid taskId, Status status)
 {
     using (IDatabase db = new NPocoDatabase("CommunicationCenter"))
     {
         var sql = Sql.Builder;
         sql.Append(ScheduledTaskTSQL.UpdateTaskStatus(), new { @status = status, @taskId = taskId });
         db.Execute(sql);
     }
 }
コード例 #3
0
        // Creates an entry in ScheduledTaskQueueHist for the task
        //public static void MoveToHistory(dynamic task, Guid histId, string message, DateTime startTime, DateTime endTime) {
        //    using (IDatabase db = new NPocoDatabase("CommunicationCenter")) {
        //        var sql = Sql.Builder;
        //        sql.Append(ScheduledTaskTSQL.SetToHistory(), new {
        //            @id = histId, @taskId = task.TaskId, @companyCode = task.CompanyCode, @notificationCompanyId = task.NotificationCompanyId,
        //            @scheduledTime = task.ScheduledTime, @taskType = task.TaskType, @status = message, @startTime = startTime,
        //            @endTime = endTime
        //        });
        //        db.Execute(sql);
        //    }
        //}

        // Update a task based on it's cron
        public static void UpdateScheduledTime(dynamic task, DateTime startTime, DateTime endTime)
        {
            using (IDatabase db = new NPocoDatabase("CommunicationCenter")) {
                var sql = Sql.Builder;
                sql.Append(ScheduledTaskTSQL.UpdateScheduledTask(),
                           new {
                    @scheduledTime = ScheduleUtils.CalculateNextRun(task.ScheduledTime, task.ScheduleCron),
                    @lastStartTime = startTime, @lastEndTime = endTime, @taskId = task.TaskId, @companyCode = task.CompanyCode
                });
                db.Execute(sql);
            }
        }
コード例 #4
0
ファイル: Scheduler.cs プロジェクト: dmerck7/Basic-Search-App
        public Scheduler()
        {
            using (IDatabase db = new NPocoDatabase("CommunicationCenter"))
            {
                var sql = Sql.Builder;
                sql.Append(ScheduledTaskTSQL.ResetAllProcessingTasks());
                db.Execute(sql);
            }

            Thread thread = new Thread(CreateAgents);

            thread.Start();
        }
コード例 #5
0
ファイル: Scheduler.cs プロジェクト: dmerck7/Basic-Search-App
        // Pull the scheduled tasks from the Queue
        private static void RunScheduledTasks(BufferBlock <ScheduledTaskQueueDto> buffer)
        {
            while (true)
            {
                List <ScheduledTaskQueueDto> tasks = new List <ScheduledTaskQueueDto>();

                using (IDatabase db = new NPocoDatabase("CommunicationCenter")) {
                    var sql = Sql.Builder;
                    sql.Append(ScheduledTaskTSQL.GetReadyTasks());
                    tasks = db.Fetch <ScheduledTaskQueueDto>(sql);
                }

                foreach (ScheduledTaskQueueDto task in tasks)
                {
                    buffer.Post(task);
                    ScheduleUtils.UpdateBitField(task.TaskId, 0);
                }

                Thread.Sleep(new TimeSpan(0, 1, 0));    // 1 minute interval
            }
        }