GAE las colas de tareas como hacer que el retraso?
-
19-09-2019 - |
Pregunta
En el código se ejecuta colas de tareas para conectar con el lado del servidor a través de extracción de URL. Mi archivo queue.yaml.
queue:
- Name: default
rate: 10 / m
bucket_size: 1
En este tipo de configuración, Colmillo realiza de una sola vez, de forma simultánea. La especificidad es la que existe entre las peticiones debe retrasarse al menos 5 sec . Tarea debe realizarse en etapa con una diferencia> 5 seg. (pero no paralelos).
¿Cuáles son los valores establecidos en queue.yaml?
Solución
No se puede especificar demoras mínimas entre tareas en queue.yaml
, en la actualidad; debe hacerlo (en parte) en su propio código. Por ejemplo, si se especifica un tamaño de cubo de 1 (de modo que más de una tarea nunca debe estar ejecutándose a la vez) y asegúrese de que las tareas se ejecuta durante al menos 5 segundos (obtener una start=time.time()
al comienzo, time.sleep(time.time()-(5+start))
al final) este Deberia trabajar. Si no es así, que cada registro de tarea en la tienda de la marca de tiempo se terminó, y cuando se inicia comprobar si la última tarea terminó hace menos de 5 segundos, y en ese caso terminará inmediatamente.
Otros consejos
La otra manera podría ser almacenar los datos de las tareas en la tabla. En su tarea-cola de añadir un parámetro id. Fetch primera tarea de la mesa y pasar su ID de servlet de procesamiento de cola de tareas. En servlet en el retardo de extremo para 5 segundos y la tarea siguiente feth, pasar su ID y .... así sucesivamente.