Package lv.odylab.evemanage.application.background.apikey

Source Code of lv.odylab.evemanage.application.background.apikey.UpdateApiKeyTaskLauncher

package lv.odylab.evemanage.application.background.apikey;

import com.google.appengine.api.taskqueue.Queue;
import com.google.inject.Inject;
import com.google.inject.name.Named;
import com.googlecode.objectify.Key;
import lv.odylab.appengine.GoogleAppEngineServices;
import lv.odylab.evemanage.application.EveManageServletModuleMapping;
import lv.odylab.evemanage.domain.user.User;
import lv.odylab.evemanage.domain.user.UserDao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import static com.google.appengine.api.taskqueue.TaskOptions.Builder.withUrl;

public class UpdateApiKeyTaskLauncher implements EveManageServletModuleMapping {
    private final Logger logger = LoggerFactory.getLogger(getClass());

    private final GoogleAppEngineServices appEngineServices;
    private final UserDao userDao;
    private final String queueName;

    @Inject
    public UpdateApiKeyTaskLauncher(GoogleAppEngineServices appEngineServices, UserDao userDao,
                                    @Named("queue.updateApiKey") String queueName) {
        this.appEngineServices = appEngineServices;
        this.userDao = userDao;
        this.queueName = queueName;
    }

    public void launchForAll() {
        logger.info("Scheduling api key update tasks");
        Queue queue = appEngineServices.getQueue(queueName);
        Iterable<Key<User>> userKeys = userDao.getAllKeys();
        for (Key<User> userKey : userKeys) {
            logger.info("Scheduling api keys update for userID: {}", userKey.getId());
            queue.add(withUrl(TASK_UPDATE_API_KEY).param("userID", String.valueOf(userKey.getId())));
        }
    }
}
TOP

Related Classes of lv.odylab.evemanage.application.background.apikey.UpdateApiKeyTaskLauncher

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.