GAE Task filas Como tornar o atraso?
-
19-09-2019 - |
Pergunta
Na Tarefa filas é executado para se conectar ao lado do servidor por meio de obtenção de URL. Meu arquivo queue.yaml.
queue:
- Name: default
rate: 10 / m
bucket_size: 1
Em tais configurações, Tusk realizada de uma só vez, em simultâneo. Especificidade é que entre os pedidos deve ser adiada pelo menos 5 sec . Tarefa deve executar no palco com um segundo diferença> 5. (mas não paralelos).
O que são os valores definidos na queue.yaml?
Solução
Você não pode especificar atrasos mínimos entre as tarefas em queue.yaml
, atualmente; você deve fazê-lo (em parte) em seu próprio código. Por exemplo, se você especificar um tamanho de balde de 1 (de modo que mais de uma tarefa nunca deve ser a execução de uma vez) e certifique-se as tarefas pistas para pelo menos 5 segundos (obter um start=time.time()
no início, time.sleep(time.time()-(5+start))
no final) esta Deveria trabalhar. Se isso não acontecer, peça a cada registro de tarefa na loja a hora que terminar, e quando ele começar a verificação se a última tarefa terminou menos de 5 segundos atrás, e, nesse caso, encerrar imediatamente.
Outras dicas
A outra maneira poderia ser armazenar os dados de tarefas na tabela. Em sua tarefa-fila adicionar um parâmetro id. Fetch 1º tarefa da tabela e passar o id para processamento de fila de tarefas servlet. Em servlet no atraso fim de 5 segundo e Feth próxima tarefa, passar seu ID e .... assim por diante.