목적

사용 기술

1️⃣ (스케줄러로) 동의 일이 1년 넘은 사용자의 개인정보 처리방침 동의상태 만료


코드

  1. 스프링 스케줄러 활성화

    @EnableScheduling
    @SpringBootApplication
    public class InstagramApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(InstagramApplication.class, args);
    	}
    
    }
    
  2. 스케줄러 생성 & 동작

    <aside> 📝 매일 밤 12시에 스케줄러를 실행하여 각 사용자의 동의 일이 1년이 넘었으면 해당 사용자의 privacy_policy_status 칼럼을 ‘DISAGREE’로 변경

    </aside>

    @Slf4j
    @Component
    @RequiredArgsConstructor
    
    public class Scheduler {
    
        private final UserDao userDao;
    
    		//매일 자정 실행되는 스케줄러
        @Scheduled(cron = "0 0 0 * * *")   //초,분,시,일,월, 요일(생략가능)
        public void checkPrivacyPolicy() {
            log.info("매일 자정 실행됨");
            userDao.modifyPrivacyPolicyStatus();
        }
    }
    
    
    public interface UserDao extends JpaRepository<User, Long> {
    
    		/* 개인정보 처리방침 동의 상태 1년마다 갱신 (스케줄러) */
    ****    @Modifying
        @Transactional
        @Query(value="update user u set u.privacy_policy_status='DISAGREE' where (date_add(u.created_at, interval +1 year) < now())", nativeQuery = true)
        void modifyPrivacyPolicyStatus();
    
    }