2010-05-13 4 views
0

Je souhaite garantir qu'une tâche ne se trouve pas dans une file d'attente de tâches plus d'une fois. Je génère donc un nom unique en fonction de sa charge utile. Mais, ce nom de tâche est reserved for up to 7 days, ce qui n'est pas ce que je veux; Je veux seulement qu'il soit réservé pour la durée de la tâche en attente; il pourrait être immédiatement remis en file d'attente.Noms de tâches de file d'attente de tâches uniques uniquement pour la durée active

Une fois qu'une tâche avec le nom N est écrit, toute tentative ultérieure d'insérer une tâche nommée N échouera. Finalement (au moins sept jours après la tâche exécute avec succès), la tâche supprimer et le nom N peut être réutilisé.

Existe-t-il un moyen de vérifier si la tâche nommée est déjà dans la file d'attente, puis de l'ajouter si ce n'est pas le cas? Ou une approche totalement différente?

Répondre

1

Vous devez adopter une approche différente - par exemple, y compris l'intervalle de temps sur lequel vous voulez que le nom soit unique au nom de la tâche, ou comprenant un « numéro de travail » que vous incrémenter pour chaque nouvelle tâche.

+1

Nick a un exemple de calcul d'un nom de la tâche qui comprend l'intervalle de temps [ici] (http://blog.notdot.net/2010/05/App-Engine-Cookbook-On-demand-Cron-Jobs) (mais en Python, le concept sera simple à implémenter en Java). –

+0

J'obtiens la solution telle qu'elle s'applique à ma situation, mais je ne vois pas comment utiliser des tâches pour les mises à jour à des intervalles périodiques est différent de l'utilisation d'un travail cron. –

+0

Je suis jaloux qu'en python, vous êtes autorisé à utiliser des tirets dans les noms de tâches. –

Questions connexes