如何使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
。