package org.springblade.mdm.machineback.filewatch;
|
|
import lombok.AllArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.stereotype.Service;
|
|
import java.io.File;
|
import java.lang.management.ManagementFactory;
|
|
|
@Slf4j
|
@AllArgsConstructor
|
@Service
|
public class DirectorLockService {
|
private final JdbcTemplate jdbcTemplate;
|
|
public boolean acquireLock() {
|
int affect = 0;
|
try {
|
affect = jdbcTemplate.update(
|
"INSERT INTO mdm_file_locks (lock_id,locked_by, lock_time) " +
|
"VALUES (1,?, CURRENT_TIMESTAMP)",getInstanceId());
|
} catch (Exception e) {
|
log.info("文件锁定失败,不进行目录监控",e);
|
}
|
return affect > 0;
|
}
|
|
public void releaseLock() {
|
jdbcTemplate.update(
|
"DELETE FROM mdm_file_locks");
|
}
|
|
private String getInstanceId() {
|
// 返回当前实例的唯一标识
|
return ManagementFactory.getRuntimeMXBean().getName();
|
}
|
|
}
|