package org.karmaexchange.task; import java.io.IOException; import java.util.logging.Logger; import org.karmaexchange.dao.Event; import org.karmaexchange.util.OfyUtil; import com.google.appengine.api.taskqueue.Queue; import com.google.appengine.api.taskqueue.QueueFactory; import com.google.appengine.api.taskqueue.TaskOptions; import com.googlecode.objectify.Key; @SuppressWarnings("serial") public class ProcessRatingsServlet extends TaskQueueAdminTaskServlet { private static final Logger logger = Logger.getLogger( ProcessRatingsServlet.class.getName()); private static final String PATH = "/task/process_ratings"; private static final String EVENT_KEY_PARAM = "event_key"; @Override protected void execute() throws IOException { String eventKeyStr = req.getParameter(EVENT_KEY_PARAM); if (eventKeyStr == null) { logger.warning("no event key specified"); return; } Key<Event> eventKey = OfyUtil.createKey(eventKeyStr); Event.processDerivedRatings(eventKey); } public static void enqueueTask(Event event) { Queue queue = QueueFactory.getDefaultQueue(); queue.add(TaskOptions.Builder.withUrl(PATH) .param(EVENT_KEY_PARAM, Key.create(event).getString())); } }