클 러 스 터 정시 퀘 스 트 여러 번 수행

2073 단어 redis
클 러 스 터 정시 작업 을 여러 번 수행 하면 중복 데이터 문제 가 존재 할 수 있 습 니 다.첫 번 째 는 다음 과 같은 방법 입 니 다.redis 두 번 째 로 데이터 베 이 스 를 구축 하 는 유일한 제약(여러 번 실행)과 quartz 등 이 있 습 니 다.
실효 시간 을 정시 작업 종료 시간 으로 설정 하고 다음 정시 작업 수행 시간 사이 에 설정 하면 됩 니 다.setnx 방법 으로 자 물 쇠 를 설정 합 니 다.
public static boolean setStringNx(String key,int seconds,String value) {
        Jedis jedis = null;
        try {
            jedis = sentinelPool.getResource();
            if (1 == jedis.setnx(key, value)) {
                jedis.expire(key, seconds);
                return true;
            }
        } catch (Exception e) {
            throw e;
        } finally {
            if (jedis != null){
                jedis.close();
            }
        }
        return false;
    }

정시 작업 수행 시간 은 30 분 에 한 번 이 며,redisKey 의 실효 시간 은 10 분 입 니 다.
public void getSaler() {
    try {
        if(RedisUtil.setStringNx("TASK_GETSALER", 60 * 10, "on")){
            doJob();
        }
    } catch (Exception e) {
        LogUtil.e("  ", e);
    }
}

좋은 웹페이지 즐겨찾기