コード例 #1
0
 public void ParseWithError(string cronExpr)
 {
     Assert.ThrowsException <CronParserException>(() =>
     {
         CronInterpreter.Parse(cronExpr);
     });
 }
コード例 #2
0
        public void MultiTasks()
        {
            var cronExpr = "* * * * *";

            var counter_task = 0;
            var cronInfo     = CronInterpreter.Parse(cronExpr);
            var task         = new CronTask
            {
                Id        = Guid.NewGuid().ToString("N"),
                CronInfo  = cronInfo,
                IsEnabled = true,
                Action    = () =>
                {
                    ++counter_task;
                    Debug.WriteLine($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}] Callback. ---Task 01");
                }
            };

            //  Adds tasks.
            var success_task = _scheduler.AddTask(task);

            var counter_expr = 0;
            var success_expr = _scheduler.AddTask(cronExpr, () =>
            {
                ++counter_expr;
                Thread.Sleep(TimeSpan.FromSeconds(3)); // Simulates time-consuming operation.
                Debug.WriteLine($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}] Callback. ---Task 02");
            });

            var counter_info = 0;
            var success_info = _scheduler.AddTask(cronInfo, () =>
            {
                ++counter_info;
                Debug.WriteLine($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}] Callback. ---Task 03");
            });

            // Gets scheduled tasks.
            var scheduledTasks = _scheduler.ScheduledTasks();

            scheduledTasks.RemoveAt(0);
            var modifiedScheduledTasks = _scheduler.ScheduledTasks();

            // Removes task.
            var taskToRemove = scheduledTasks.Last();

            _scheduler.Remove(taskToRemove.Id);

            // Gets scheduled tasks again.
            modifiedScheduledTasks = _scheduler.ScheduledTasks();

            Thread.Sleep(TimeSpan.FromSeconds(135)); // Sets the test lifecycle.

            Assert.IsTrue(
                success_task &&
                success_expr &&
                success_info &&
                counter_task == 2 &&
                counter_expr == 2 &&
                counter_info == 0
                );
        }
コード例 #3
0
        public void ParseSuccessfully(string cronExpr)
        {
            var cronInfo = CronInterpreter.Parse(cronExpr);

            Assert.IsFalse(cronInfo == null);
        }