タスクをタスク キューに追加すると、タスクが見つからないことがあります。エラーは発生しませんが、ログにタスクが見つかりません。n 個のタスクを追加するとします。これらの n 個のタスクが終了しないと、計算を進めることはできません。ただし、これらの n 個のタスクの 1 つ以上が追加された後に行方不明になり、アルゴリズム全体が途中で停止することがわかりました。何が原因でしょうか? タスクが追加された回数を確認する変数 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