appengine创建队列失败

时间:2012-03-05 17:43:31

标签: java google-app-engine

在appengine中创建任务队列失败,出现以下异常

com.google.appengine.api.taskqueue.QueueApiHelper.translateError(QueueApiHelper.java:86)
com.google.appengine.api.taskqueue.QueueImpl.add(QueueImpl.java:505)
com.google.appengine.api.taskqueue.QueueImpl.add(QueueImpl.java:427)
com.google.appengine.api.taskqueue.QueueImpl.add(QueueImpl.java:412)

它在本地开发服务器上工作了一段时间,然后失败并出现以下异常

com.google.appengine.api.taskqueue.QueueApiHelper.translateError(QueueApiHelper.java:74)
com.google.appengine.api.taskqueue.QueueImpl.add(QueueImpl.java:505)
com.google.appengine.api.taskqueue.QueueImpl.add(QueueImpl.java:427)
com.google.appengine.api.taskqueue.QueueImpl.add(QueueImpl.java:412)

以下是我正在使用的代码

TaskOptions taskOption = TaskOptions.Builder.withUrl(servletPath).countdownMillis(time)
taskOption.taskName(name)

Queue queue = QueueFactory.getQueue(taskQueue)
queue.add(taskOption)

1 个答案:

答案 0 :(得分:0)

似乎本地服务器对taskName更加宽松。 QueueApiHelper.java:86的异常将在appengine中出现,如果名称有大写或者名称被重用(希望,appengine将允许名称在一段时间后重复使用。我注意到它不允许重用名称5分钟。)如果同时创建两个具有相同名称的任务,则会在本地服务器中出现QueueApiHelper.java:74的异常。所以这是(描述性)修复

taskOption.taskName(name.toLowerCase().replaceAll("[^a-z0-9]+","") + System.currentTimeMillis())