2017-10-18 4 views
0

J'ai lu google docs, mais il est dit à propos de la tâche non différée seulement. Là, nous créons un fichier xml avec des paramètres et pouvons spécifier le nombre de tentatives.Comment faire pour que la tâche différée dans Java (AppEngine) ne se répète pas en cas d'échec?

Mais j'utilise les tâches différées:

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

et créer de cette façon:

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

Comment préciser que je ne veux pas qu'il soit redémarré en cas d'échec?

Répondre

1

Je ne suis pas un utilisateur Java, mais je vois cela dans Interface DeferredTask que je pense que vous pourrez peut-être utiliser:

retour normal de cette méthode est considérée comme succès et ne sera pas nouvelle tentative à moins DeferredTaskContext.markForRetry() est appelée. Les exceptions générées par cette méthode indiqueront un échec et seront traitées en tant que tentative de nouvelle tentative à moins que DeferredTaskContext.setDoNotRetry(boolean) ait été défini sur true.