在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)
答案 0 :(得分:0)
似乎本地服务器对taskName更加宽松。 QueueApiHelper.java:86的异常将在appengine中出现,如果名称有大写或者名称被重用(希望,appengine将允许名称在一段时间后重复使用。我注意到它不允许重用名称5分钟。)如果同时创建两个具有相同名称的任务,则会在本地服务器中出现QueueApiHelper.java:74的异常。所以这是(描述性)修复
taskOption.taskName(name.toLowerCase().replaceAll("[^a-z0-9]+","") + System.currentTimeMillis())