/// <summary> /// 获取锁对象 /// 先判断锁对象是否否在 /// 如果不存在 则插入锁对象 /// 再获取锁对象 /// </summary> /// <param name="uniKey"></param> /// <returns></returns> public LockObject GetLockItem(string uniKey) { ShowTimeDataContent ctx = new ShowTimeDataContent(); LockClient lo = null; if (!ctx.Lock.Any(c => c.Key == uniKey)) { try { lo = new Objects.Model.LockClient() { ClinetCnt = 0, Expire = DateTime.Now, Key = uniKey, Lock = 2, Type = 1 }; ctx.Lock.Add(lo); ctx.SaveChanges(); } catch (Exception ex) { } } if (lo == null || lo.Id == 0) { lo = ctx.Lock.First(c => c.Key == uniKey); } LockObject obj = null; if (lo != null) { obj = new LockObject(); obj.Id = lo.Id; obj.Key = lo.Key; obj.Lock = lo.Lock; obj.Type = lo.Type; obj.Expire = lo.Expire; } return(obj); }
private static bool CheckLife(LockClient client) { return (DateTime.Now - client.Time > MAX_LOCK_LIFETIME); }
LockImpl(ClientConnectionManager connectionManager) { this.connectionManager = connectionManager; managedChannel = connectionManager.NewChannel(); lockClient = new LockClient(managedChannel.Channel); }