Google App Engine已添加任务缺失
当我将任务添加到任务队列时,有时会丢失任务。我没有得到任何错误,但我只是在我的日志中找不到任务。假设我添加了n个任务。如果没有完成这n个任务,计算就无法进行。但是,我发现这些n个任务中的一个或多个在添加之后就丢失了,我的整个算法在中间停止。
可能是什么原因 ?
我保留一个变量w来检查添加任务的次数。我观察到w = n虽然没有创建一些任务。
def addtask_whx(index,user,seqlen,vp_compress,iseq_compress):
global w
while True :
timeout_ms = 100
taskq_name = 'whx'+'--'+str(index[0])+'-'+str(index[1])+'-'+str(index[2])+'-'+str(index[3])+'-'+str(index[5]) + '--' + user
try :
taskqueue.add(name=taskq_name+str(timeout_ms),queue_name='whx',url='/whx', params={'m': index[0],'n': index[1],'o': index[2],'p': index[3],'q':0,'r':index[5],'user': user,'seqlen':seqlen,'vp':vp_compress,'iseq':iseq_compress})
w = w+1
break
except DeadlineExceededError:
taskq_name = taskq_name + str(timeout_ms)
time.sleep(float(timeout_ms)/1000)
timeout_ms = timeout_ms*4
logging.error("WHX Task Queue Add Timeout Retrying")
except TransientError:
taskq_name = taskq_name + str(timeout_ms)
time.sleep(float(timeout_ms)/1000)
timeout_ms = timeout_ms*4
logging.error("WHX Task Queue Add Transient Error Retrying")
except TombstonedTaskError:
logging.error("WHX Task Queue Tombstoned Error")
break
没有找到相关结果
已邀请:
1 个回复
伞腹
非常低;如果必须启动新的JVM(可能需要几秒钟),则可以在任务n之前执行任务n + 1和n + 2。 简而言之,任务队列不是执行严格顺序计算的可靠机制。你被警告过了。 -tjw