package com.juick.components; import com.juick.components.service.TokenService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.inject.Inject; import java.util.ArrayList; /** * Created by vitalyster on 22.11.2016. */ @Component public class CleanUp { private static Logger logger = LoggerFactory.getLogger(CleanUp.class); @Inject TokenService tokenService; @Inject Notifications push; @Scheduled(fixedRate = 600000) public void cleanupTokens() { logger.debug("initializing GCM tokens cleanup: {} tokens", push.getInvalidGCMTokens().size()); tokenService.deleteTokens("gcm", new ArrayList<>(push.getInvalidGCMTokens())); push.cleanupGCMTokens(); logger.debug("initializing MPNS tokens cleanup: {} tokens", push.getInvalidMPNSTokens().size()); tokenService.deleteTokens("mpns", new ArrayList<>(push.getInvalidMPNSTokens())); push.cleanupMPNSTokens(); logger.debug("initializing APNS tokens cleanup: {} tokens", push.getInvalidAPNSTokens().size()); tokenService.deleteTokens("apns", new ArrayList<>(push.getInvalidAPNSTokens())); push.cleanupMPNSTokens(); } }