/**
 * Copyright 2008-2009. Chongqing Communications Industry Services Co.,Ltd Information Technology Branch. All rights reserved.
 * <a>http://www.crunii.com</a>
 */
package com.crunii.micro.platform.components;

/**
 * @author 田平 create 2021/9/2 16:55
 */
public interface Locker {
	/**
	 * 加锁
	 *
	 * @param namespace
	 * @param lockId
	 */
	public void lock(String namespace, String lockId);

	/**
	 * 提供命名空间防止lockId冲突
	 *
	 * @param namespace   所有项目全局不冲突
	 * @param lockId
	 * @param expiredTime 单位秒,锁过期时间，防止极端异常情况，锁一直存在，处于加锁状态
	 */
	public void lock(String namespace, String lockId, int expiredTime);

	/**
	 * 解锁
	 */
	public void unlock();
}
