DungeonScheduler.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using DeepCore.Log;
  2. using DeepCrystal.Schedule;
  3. using System;
  4. //using Quartz;
  5. namespace DeepMMO.Server.AreaManager
  6. {
  7. public class DungeonScheduler : IDisposable
  8. {
  9. private static Logger log = LoggerFactory.GetLogger("DungeonScheduler");
  10. private ISchedule scheduler;
  11. public DungeonScheduler()
  12. {
  13. // scheduler = ScheduleFactory.Instance.GetScheduler("dungeon", MissFirePolicy.FireOnceNow);
  14. // {
  15. // var old = scheduler.GetJob("task-0");
  16. // if (old != null)
  17. // scheduler.RemoveJob(old.Name);
  18. // }
  19. // scheduler.GetOrCreateCornJob<RefreshDungeonJob>("task-0", "0/10 * * * * ?", new Dictionary<string, object>() { { "123", 123 }, { "str", "str" } });
  20. // scheduler.GetOrCreateCornJob<RefreshDungeonJob>("task-1", "0/5 * * * * ?", new Dictionary<string, object>() { { "123", 123 }, { "str", "str" } });
  21. // IJobDetail job = JobBuilder.Create<RefreshDungeonJob>().WithIdentity("job1", "group1").Build();
  22. //
  23. // ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger1", "group1").StartNow().WithSimpleSchedule(x => x.WithIntervalInSeconds(10).RepeatForever()).Build();
  24. //
  25. // scheduler.ScheduleJob(job, trigger);
  26. // scheduler.Start();
  27. }
  28. public void Dispose()
  29. {
  30. // scheduler.Shutdown();
  31. }
  32. /// <summary>
  33. /// 副本是否开启
  34. /// </summary>
  35. /// <param name="mapID"></param>
  36. /// <returns></returns>
  37. public virtual bool IsMapOpen(int mapID)
  38. {
  39. return true;
  40. }
  41. }
  42. public class RefreshDungeonJob : IJob
  43. {
  44. public void Execute(IJobExeContext state)
  45. {
  46. state.Log.ErrorFormat("RefreshDungeonJob : {0} : FireTimeUtc={1} ScheduledFireTimeUtc={2} NextFireTimeUtc={3} PreviousFireTimeUtc={4}",
  47. state.Name,
  48. state.FireTimeUtc,
  49. state.ScheduledFireTimeUtc,
  50. state.NextFireTimeUtc,
  51. state.PreviousFireTimeUtc);
  52. }
  53. }
  54. }