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(); } }