当尝试实现推送队列时,我收到以下错误:
com.google.apphosting.api.ApiProxy$CallNotFoundException: Can't make API call taskqueue.BulkAdd in a thread that is neither the original request thread nor a thread created by ThreadManager
在我的 servlet 中doPost()
方法,这是我的任务:
Queue queue = QueueFactory.getQueue("rating-queue");
queue.add(TaskOptions.Builder.withUrl("/addrating")
.param("function", function)
.param("user_id", Integer.toString(user_id))
.param("item_id", Integer.toString(item_id))
.param("is_user", Boolean.toString(isUser)));
In my web.xml
file:
<servlet>
<servlet-name>AddRating</servlet-name>
<servlet-class>com.example.ExampleClass</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddRating</servlet-name>
<url-pattern>/addrating</url-pattern>
</servlet-mapping>
这是 WEB-INF 文件夹中的queue.xml 文件:
<queue-entries>
<queue>
<name>default</name>
<rate>5/s</rate>
</queue>
<queue>
<name>rating-queue</name>
<rate>5/s</rate>
</queue>
</queue-entries>
我正在本地运行我的 servlet。我的应用程序引擎控制台中没有可见的任务队列。