public void Process(object sender, WatcherArgs args) { Console.WriteLine($"FairlockListener:path:{args.Path},Type:{args.Type},ThreadId:{Thread.CurrentThread.ManagedThreadId}"); if (args.State == Event.KeeperState.SyncConnected) { if (!args.Path.Contains("fairlocks")) { return; } if (args.Type == Event.EventType.NodeDeleted) { WorkerScheduler.Instance.Set(args.Path); } } else if (args.State == Event.KeeperState.Expired) { Task.Run(() => { var handler = new FairlockHandler(); handler.CheckWaitDeletedNode(); }); } }
public static void Enter(FairlockOptions options) { //默认超时60s if ((int)options.Timeout.TotalMilliseconds == 0) { options.Timeout = TimeSpan.FromMinutes(1); } var handler = new FairlockHandler(options); handler.ApplyLock(); }
public static void Exit() { var handler = new FairlockHandler(); handler.ReleaseLock(); }