我对谷歌应用引擎中的推送队列感到非常困惑。
我想做的就是异步运行。我在这里阅读了文档:https://developers.google.com/appengine/docs/java/taskqueue/overview-push
但是我的代码提出了404错误,因为它调用的_ah/queue/default
并不存在。
所以这里是我的一些代码:
class Notification implements DeferredTask, Serializable {
public void run() {/*do something asynchronously here*/}
}
//elsewhere....
DeferredTask notification = new Notification();
Queue queue = QueueFactory.getDefaultQueue();//getQueue("default");
TaskOptions task = TaskOptions.Builder.withPayload(notification );
queue.add(task);
我现在需要设置一个servlet吗?如果是,是否应该映射到/_ah/queue/default
,/queue/default
或/default
?然后,我是否反序列化请求输入流以重新构建Notification对象,然后只调用run方法?似乎是一种非常复杂的做法。
它确实在文档中说明了#34;您可以立即使用此队列而无需任何其他配置。"但是,如果我需要开始搞乱使用web.xml,这似乎并不合适。
UPDATE 我不确定使用DeferredTask是否正确。我在管理面板中看到队列中有大量任务,但由于404错误,它们每次运行都会失败。