我正在尝试在未来一个小时内运行一项任务。这是我正在做的,似乎不起作用。
import static com.google.appengine.api.taskqueue.TaskOptions.Builder.*;
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.HOUR, 1);
cal.getTime();
Queue queue = QueueFactory.getDefaultQueue();
queue.add(withUrl("/task/doMyThing").param("userId", userId).header("X-AppEngine-TaskETA", cal.getTime().getTime()+""));
-编辑
好的,然后再澄清一点:当有人点击我的服务时,我想在他们点击服务一小时后调用一个 Java 方法。我认为任务队列是在 App Engine 上执行此操作的最佳方式。我认为除非 ETA 通过,否则队列不会执行该任务。如果我以错误的方式处理这个问题并且有更好的方法来完成它,请告诉我。
- 再次编辑
感谢您的回答,为了记录,这就是我所做的:
Queue queue = QueueFactory.getDefaultQueue();
queue.add(withUrl("/task/sendReminder").param("userId", userId).countdownMillis(120000));