2011-07-04 64 views

回答

1

你應該能夠定義像你的任務:

class RemoteCall(Task): 
    default_retry_delay = 30 * 60 # retry in 30 minutes 

    def Run(self, arg, **kwargs): 
     try: 
      res = URL("http://example.com/").get_async(arg) 
     except (InvalidResponseError, RemoteExecuteError), exc: 
      self.retry([arg], exc=exc, *kwargs) 

這將繼續努力,它以MAX_RETRIES嘗試,每30分鐘一次。

+0

我可能會被誤認爲 - 但是當端點不在那裏時,get_async沒有返回錯誤 - 所以它不會觸發該重試? (我可能弄錯了,還在我的腦子裏跑來跑去)。所以要使用這個 - 我會(在「客戶端」)調用RemoteCall()。delay()? –