package org.wahlzeit.agents;
import com.google.appengine.api.taskqueue.Queue;
import com.google.appengine.api.taskqueue.QueueFactory;
import com.google.appengine.api.taskqueue.RetryOptions;
import com.google.appengine.api.taskqueue.TaskOptions;
import org.wahlzeit.model.Photo;
import java.util.logging.Logger;
import static com.google.appengine.api.taskqueue.RetryOptions.Builder.withTaskRetryLimit;
/**
* Class to combine all calls for async task to use Task API from Google.
*
* @review
*/
public class AsyncTaskExecutor {
private static final Logger log = Logger.getLogger(AsyncTaskExecutor.class.getName());
/**
* @methodtype command
*
* Starts a task in the default queue to save the photo with the specified ID.
*/
public static void savePhotoAsync(String photoId) {
log.info("Calling async push task to persist PhotoId " + photoId);
Queue queue = QueueFactory.getDefaultQueue();
RetryOptions retryOptions = withTaskRetryLimit(3);
queue.add(TaskOptions.Builder.withUrl("/persistPhoto").param(Photo.ID, photoId).retryOptions(retryOptions));
}
}