如何使Java中的延期任务(AppEngine)在失败的情况下不会重复?

问题描述:

我读过谷歌文档,但有人说只有非延期任务。在那里我们用params创建xml文件,并且可以指定重试次数。如何使Java中的延期任务(AppEngine)在失败的情况下不会重复?

但我递延任务:

public static class ExpensiveOperation implements DeferredTask 
{ 
    @Override 
    public void run() 
    { 
    System.out.println("Doing an expensive operation..."); 
    // expensive operation to be backgrounded goes here 
    } 
} 

,创造这种方式:

Queue queue = QueueFactory.getDefaultQueue();   
queue.add(TaskOptions.Builder.withPayload(new ExpensiveOperation(/*different params*/))); 

如何指定我不希望它在失败的情况下重新启动做?

我不是一个Java用户,但我看到这个Interface DeferredTask认为您可以使用:

此方法

正常返回被认为是成功的,并不会 除非重试调用了DeferredTaskContext.markForRetry()。 从此方法抛出的异常将指示失败,并将作为重试尝试处理 ,除非 DeferredTaskContext.setDoNotRetry(boolean)设置为true