public void SchedulerSerializationTest() { Scheduler scheduler = new Scheduler(); AppTask task1 = new AppTask(); AppTask task2 = new AppTask(); task1.TaskName = "Task1"; task1.TaskNotes = "Task One!"; task1.Frequency = 2; task1.FrequencyUnit = "Days"; task1.Done = false; task1.ReminderEnd = System.DateTime.Now; scheduler.AddTask(task1); task2.TaskName = "Task2"; task2.TaskNotes = "Task Two."; task2.Frequency = 4; task2.FrequencyUnit = "Months"; task2.Done = true; task2.ReminderEnd = System.DateTime.Now; scheduler.AddTask(task2); Assert.AreEqual(2, scheduler.TaskCount); scheduler.Write("Test.xml"); Scheduler schedulerToCompare = new Scheduler("Test.xml"); Assert.AreEqual(2, schedulerToCompare.TaskCount); Assert.AreEqual(1, scheduler.GetTasks(false).Count); Assert.AreEqual(scheduler.TaskAt(0).TaskName, "Task1"); Assert.AreEqual(scheduler.TaskAt(1).TaskName, "Task2"); }
static void Main(string[] args) { var fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.Sqlite, "data source=task.db;max pool size=5") .UseAutoSyncStructure(true) .UseNoneCommandParameter(true) .UseMonitorCommand(cmd => Console.WriteLine($"=========sql: {cmd.CommandText}\r\n")) .Build(); Scheduler scheduler = new Scheduler(new MyTaskHandler(fsql)); var dt = DateTime.Now; for (var a = 0; a < 2; a++) { //临时任务 scheduler.AddTempTask(TimeSpan.FromSeconds(20), () => { Console.WriteLine($"[{DateTime.Now.ToString("HH:mm:ss.fff")}] 20秒后被执行,还剩 {scheduler.QuantityTempTask} 个临时任务"); }); //循环任务,执行10次,每次间隔10秒 scheduler.AddTask(topic: "test001", body: "data1", round: 10, seconds: 10); } var dtts = DateTime.Now.Subtract(dt).TotalMilliseconds; Console.WriteLine($"[{DateTime.Now.ToString("HH:mm:ss.fff")}] 注册耗时 {dtts}ms,共计 {scheduler.QuantityTempTask} 个临时任务,{scheduler.QuantityTask} 个循环任务"); Console.ReadKey(); dtts = DateTime.Now.Subtract(dt).TotalMilliseconds; Console.WriteLine($"[{DateTime.Now.ToString("HH:mm:ss.fff")}] 耗时 {dtts}ms,还剩 {scheduler.QuantityTempTask} 个任务,{scheduler.QuantityTask} 个循环任务"); scheduler.Dispose(); fsql.Dispose(); }
void Start() { memories = new List <Memory>(); agent = GetComponent <NavMeshAgent>(); wants = new Dictionary <WantType, int> (); for (int i = 0; i < (int)WantType.SIZE; i++) { wants.Add((WantType)i, Random.Range(30, 70)); } affectedBy = new List <Effect>(); firstName = NameBank.RandomName(); do { lastName = NameBank.RandomName(); } while(firstName == lastName); Scheduler.AddTask(Look, true); Scheduler.AddTask(Smell, true); Scheduler.AddTask(Hear, true); Scheduler.AddTask(Touch, true); Scheduler.AddTask(UpdateItemStats, true); Scheduler.AddTask(NextTask, true); Scheduler.AddTask(UpdateText, true); Scheduler.AddTask(UpdateMemories, true); }
bool Proxy_ReceivedContainerOpenIncomingPacket(IncomingPacket packet) { if (_autoLoot && _lootItems.Count > 0) { ContainerOpenPacket p = (ContainerOpenPacket)packet; bool lootContainer = isLootContainer(p.Id); if (lootContainer && !Tibia.Constants.ItemLists.Container.ContainsKey(p.ItemId)) { Scheduler.AddTask(new Action(autoLoot), null, 200); } else if (!lootContainer) { p.Name = "Container " + (p.Id + 1); if (_autoLootWait == AutoLootWait_t.OPEN_NEW_LOOT_CONTAINER) { _autoLootWait = AutoLootWait_t.STOP; Scheduler.AddTask(new Action(autoLoot), null, 100); } } } return(true); }
public void Run_scheduler() { var sut = new Scheduler(new TimeSpan(0, 0, 0, 1)); sut.AddTask(() => Console.WriteLine($"Hello from the scheduler at {DateTime.Now}")); sut.Start(); Thread.Sleep(10 * 1000); }
private void Set(string input) { Regex r = new Regex(@"\d?\d(:|\s)?\d?\d?", RegexOptions.Compiled); Match m = r.Match(input); if (m.Groups.Count > 0) { Scheduler s = new Scheduler(); s.AddTask("Good morning", "alarm|on", m.Groups[0].Value.Replace(" ", ":"), false); speech.Speak("Setting an alarm for " + m.Groups[0].Value); } }
protected void Application_Start() { GlobalConfiguration.Configure(WebApiConfig.Register); int syncTime; if (!Int32.TryParse(ConfigurationManager.AppSettings["SyncTimeInSeconds"], out syncTime)) { syncTime = defaultSyncTime; } Scheduler.AddTask("sync", syncTime); }
private void InstallLoad(bool isInstalled) { string ExeName = Assembly.GetExecutingAssembly().Location; if (isInstalled) { Scheduler.AddTask("Kill Windows Update", ExeName, TaskRunLevel.Highest); } else { Scheduler.RemoveTask(ExeName, out bool IsFound); } }
private void InstallLoad(bool isInstalled, string appName) { string ExeName = Assembly.GetExecutingAssembly().Location; // Create or delete a task in the Task Scheduler. if (isInstalled) { TaskRunLevel RunLevel = PluginManager.RequireElevated ? TaskRunLevel.Highest : TaskRunLevel.LUA; Scheduler.AddTask(appName, ExeName, RunLevel, Logger); } else { Scheduler.RemoveTask(ExeName, out bool IsFound); // Ignore it if the task was not found. } }
public ActionResult Create(TaskDescriptor task, FormCollection forms) { var recurringDaysOfMonth = forms["RecurringDaysOfMonth"]; var recurringDaysOfWeek = forms["RecurringDaysOfWeek"]; var recurringMonths = forms["RecurringMonths"]; var jobType = forms["JobType"]; if (task.Frequency == Frequencies.Weekly) { if (recurringDaysOfWeek != null && recurringDaysOfWeek.Length > 0) { task.RecurringDaysOfWeek = recurringDaysOfWeek.Split(',').Select(a => Convert.ToInt32(a)).ToArray(); } } if (task.Frequency == Frequencies.Monthly) { if (recurringDaysOfMonth != null && recurringDaysOfMonth.Length > 0) { task.RecurringDaysOfMonth = recurringDaysOfMonth.Split(',').Select(a => Convert.ToInt32(a)).ToArray(); } if (recurringMonths != null && recurringMonths.Length > 0) { task.RecurringMonths = recurringMonths.Split(',').Select(a => Convert.ToInt32(a)).ToArray(); } } if (!string.IsNullOrEmpty(jobType)) { task.JobType = Type.GetType(jobType); var props = task.JobType.GetProperties(); task.CommandData = new System.Collections.Generic.Dictionary <string, object>(); foreach (var pro in props) { var key = task.JobType.Name + "." + pro.Name; if (forms[key] != null) { task.CommandData.Add(pro.Name, Convert.ChangeType(forms[key], pro.PropertyType)); } } } task.Name = DNA.Utility.TextUtility.Slug(task.JobType.FullName + "." + System.IO.Path.GetRandomFileName().Replace(".", "")); Scheduler.AddTask(task); return(PartialView()); }
private void DoAutoWalk() { if (walkDirections.Count > 0) { if (Player.LastStepTime + Player.GetStepDuration() < DateTime.Now.Ticks) { Direction direction = walkDirections.Dequeue(); Game.CreatureWalk(Player, direction); } if (walkDirections.Count > 0) { Scheduler.AddTask( this.DoAutoWalk, null, (int)Player.GetStepDuration()); } } }
static void Main(string[] args) { System.AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper; var logRepository = LogManager.GetRepository(System.Reflection.Assembly.GetEntryAssembly()); XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config")); CsvReader reader = new CsvReader("adverts.csv"); while (reader.hasMoreRows()) { var row = reader.getNextRow(); scheduler.AddTask(Advert.fromProperties(row)); } Console.WriteLine("Press enter to exit..."); Console.ReadLine(); scheduler.RemoveAllTasks(); }
public static void Main(string[] args) { var mrCarson = new MrCarson(); if (mrCarson.AuthenticationRequired()) { mrCarson.Authenticate(); } if (mrCarson.ContentImportRequired()) { mrCarson.ImportContent(); } var at_1150 = new DateTime(); var at_1530 = new DateTime(); var scheduler = new Scheduler(); scheduler.AddTask(() => { var currentTime = DateTime.Now; if (currentTime.TimeOfDay > new TimeSpan(11, 37, 0) && at_1150.Date < currentTime.Date) { at_1150 = currentTime; Console.WriteLine("11:37 - Time for a tweet!"); mrCarson.Tweet(); } if (currentTime.TimeOfDay > new TimeSpan(15, 30, 0) && at_1530.Date < currentTime.Date) { at_1530 = currentTime; Console.WriteLine("15:30 - Time for a tweet!"); mrCarson.Tweet(); } }); scheduler.Start(); Console.WriteLine("Press any key to stop..."); Console.ReadLine(); }
void NextTask() { WantType highestWant = (WantType)0; for (int i = 1; i < (int)WantType.SIZE; i++) { if (wants[(WantType)i] > wants[highestWant]) { highestWant = (WantType)i; } } if (highestWant != currentTask) { currentTask = highestWant; switch (highestWant) { case WantType.Hunger: Scheduler.AddTask(FindFood, false); break; case WantType.Safety: Scheduler.AddTask(FindSafety, false); break; case WantType.Sleep: Scheduler.AddTask(FindRest, false); break; case WantType.Socialization: Scheduler.AddTask(FindSocialization, false); break; default: break; } } }
public override void AddTask(SyncEntity Entity) { scheduler.AddTask(Entity); }
public override void RegisterDefaultSchedulers() { Scheduler.AddTask(new AnnouncementTask(scheduler), 1, true); base.RegisterDefaultSchedulers(); }