Question

Dans le code Task Queues est exécuté pour la connexion au côté serveur par URL Fetch. Mon fichier queue.yaml.

queue: 
- Name: default 
   rate: 10 / m 
   bucket_size: 1 

Dans un tel contexte, Tusk effectué à la fois, en même temps. La spécificité est que, entre les demandes devrait être retardé d'au moins 5 s . Tâche doit se produire sur scène avec une différence> 5 sec. (mais ne pas parallèle).

Quelles sont les valeurs définies dans queue.yaml?

Était-ce utile?

La solution

Vous ne pouvez pas spécifier des délais minimaux entre les tâches à queue.yaml, actuellement; vous devriez le faire (en partie) dans votre propre code. Par exemple, si vous spécifiez une taille de seau de 1 (pour que plus d'une tâche ne devrait jamais être en cours d'exécution à la fois) et assurez-vous que les tâches fonctionne pendant au moins 5 secondes (obtenir un start=time.time() au début, time.sleep(time.time()-(5+start)) à la fin), ce devrait marcher. Si elle ne le fait pas, demandez à chaque enregistrement de tâche dans le magasin l'horodatage, il a fini, et quand il démarre vérifier si la dernière tâche est terminée il y a moins de 5 secondes, et dans ce cas, mettre fin immédiatement.

Autres conseils

L'autre façon pourrait être stocker les données de la tâche dans le tableau. Dans votre tâche file d'attente ajouter un paramètre id. Fetch 1ère tâche de la table et de transmettre son identifiant à la tâche servlet de traitement de file d'attente. Dans servlet au délai final pendant 5 secondes et Feth tâche suivante, passez son identifiant et .... ainsi de suite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top