Frage

Im Task-Warteschlangen-Code wird ausgeführt, um die Server-Seite zu verbinden URL abrufen. Meine Datei queue.yaml.

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

In einem solchen Einstellungen durchgeführt Tusk auf einmal alle gleichzeitig. Die Spezifität ist, dass zwischen den Anfragen sollte zumindest verzögert werden 5 s . Aufgabe muss mit einer Differenz> 5 Sekunden auf der Bühne. (aber ist nicht parallel).

Was sind die Werte in queue.yaml werden?

War es hilfreich?

Lösung

Sie können keine Mindest Verzögerungen zwischen den Aufgaben in queue.yaml angeben, zur Zeit; Sie sollten es (teilweise) in Ihrem eigenen Code tun. Zum Beispiel, wenn Sie einen Eimer Größe von 1 angeben (so dass mehr als eine Aufgabe soll nie auf einmal ausgeführt werden sein), und stellen Sie sicher, die Aufgaben laufen für mindestens 5 Sekunden (erhält eine start=time.time() am Anfang, time.sleep(time.time()-(5+start)) am Ende) dieses sollte arbeiten. Wenn es nicht der Fall ist, haben jede Aufgabe Datensatz im Speicher der Zeitstempel es fertig, und wenn es Prüfung starten, wenn die letzte Aufgabe beendet weniger als 5 Sekunden vor, und in diesem Fall sofort beenden.

Andere Tipps

Der andere Weg, um die Auftragsdaten in der Tabelle gespeichert sein könnte. In Ihrer Aufgabe-Warteschlange ein id-Parameter hinzuzufügen. Fetch erste Aufgabe aus der Tabelle und gibt ihre ID-Task-Queue-Verarbeitung Servlet. In Servlet am Ende Verzögerung für 5 Sekunden und Feth nächste Aufgabe, übergibt ihre ID und .... so weiter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top