2012-03-04 71 views
0

从版本提交任务时,任务将以不同的版本结束以供执行。我如何使任务在相同的部署版本中执行?在不同的部署版本中使用Google Appengine Taskqueue

注: 我queue.xml中尝试“目标”,结果是一样的。任务将以随机的不同版本执行。它并不总是一样的。

我的设置有什么问题?

[UPDATE]

<queue> 
    <name>shopinionMessage</name> 
    <rate>10/s</rate> 
    <retry-parameters> 
     <task-retry-limit>60</task-retry-limit> 
     <min-backoff-seconds>1</min-backoff-seconds> 
     <max-backoff-seconds>30</max-backoff-seconds> 
     <max-doublings>0</max-doublings> 
    </retry-parameters> 
    <target>2</target> 
    </queue> 
+0

试过..什么?您是否尝试过在[队列配置文档](http://code.google.com/appengine/docs/java/config/queue.html#Queue_Definitions)上的queue.xml中定义特定的? – 2012-03-04 04:00:53

+0

是的,我试过'目标'。但是,它没有工作。 – angelokh 2012-03-04 04:31:14

+1

''正是你所需要的。如果它不起作用,那么这是GAE中的一个错误,您应该填写一份错误报告:http://code.google.com/p/googleappengine/issues/list – 2012-03-04 15:00:28

回答

0

https://developers.google.com/appengine/docs/java/config/queue#target说,目标是

的字符串命名的模块/版本,一个前端版本,或后端,在其上执行此任务。

你有模块吧?如果是的话,你应该尝试my-version.my-module作为target;不幸的是,你不会有任何运气无论是作为现在:https://code.google.com/p/googleappengine/issues/detail?id=10954

顺便说一句,没有目标就不应是随机的地方执行任务:

如果目标是不确定的,那么在它们入队的应用程序的相同版本上调用任务。因此,如果您从默认应用程序版本中排除任务而未指定队列上的目标,则会在默认应用程序版本中调用该任务。请注意,如果默认应用程序版本在任务排队时间和执行时间之间发生变化,则任务将以新的默认版本运行。