Módulo google.appengine.api.taskqueue.taskqueue

Resumo

Task Queue API.

Permite que um aplicativo enfileire o trabalho em segundo plano para ele próprio. O trabalho é feito por meio de webhooks que processam tarefas enviadas por uma fila ou de trabalhadores que extraem manualmente tarefas de uma fila. Em filas push, as tarefas serão executadas na melhor ordem possível de acordo com o tempo estimado de chegada. Os webhooks que falharem farão com que as tarefas sejam repetidas mais tarde. Em filas pull, os trabalhadores são responsáveis por alocar tarefas de processamento e por excluí-las quando concluídas. Existem várias filas cab com controles de limitação independentes.

Os URLs de webhook podem ser especificados diretamente para tarefas de envio, ou o esquema de URL padrão pode ser usado, o que converterá nomes de tarefa em URLs relativos ao caminho base de uma fila. Uma fila padrão também é fornecida para uso simples.

Índice

exception google.appengine.api.taskqueue.taskqueue.BadTaskStateErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

A tarefa está no estado errado para a operação solicitada.

google.appengine.api.taskqueue.taskqueue.BadTransactionState

alias de BadTransactionStateError

exception google.appengine.api.taskqueue.taskqueue.BadTransactionStateErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

O estado da transação atual não permite essa operação.

exception google.appengine.api.taskqueue.taskqueue.DatastoreErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

Ocorreu um erro no armazenamento de dados durante o acesso à fila.

exception google.appengine.api.taskqueue.taskqueue.DuplicateTaskNameErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

Duas tarefas têm o mesmo nome.

Durante a adição de várias tarefas a uma fila em um lote, mais de uma tarefa não pode ter o mesmo nome.

exception google.appengine.api.taskqueue.taskqueue.Errorsource

Bases: exceptions.Exception

Classe base para exceções neste módulo.

exception google.appengine.api.taskqueue.taskqueue.InternalErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

Ocorreu um erro interno durante o acesso a essa fila.

Se o problema persistir, entre em contato com a equipe do App Engine por meio do fórum de suporte. Não se esqueça de incluir uma descrição do problema.

exception google.appengine.api.taskqueue.taskqueue.InvalidQueueErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

A configuração da fila é inválida.

exception google.appengine.api.taskqueue.taskqueue.InvalidQueueNameErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.InvalidQueueError

O nome da fila é inválido.

exception google.appengine.api.taskqueue.taskqueue.InvalidTaskErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

Os parâmetros, os cabeçalhos ou o método da tarefa são inválidos.

exception google.appengine.api.taskqueue.taskqueue.InvalidTaskNameErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

O nome da tarefa é inválido.

exception google.appengine.api.taskqueue.taskqueue.InvalidUrlErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

O URL relativo usado na tarefa é inválido.

exception google.appengine.api.taskqueue.taskqueue.PermissionDeniedErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

A operação solicitada não tem permissão para esse app.

exception google.appengine.api.taskqueue.taskqueue.TaskAlreadyExistsErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

A tarefa já existe. Ela ainda não foi executada.

exception google.appengine.api.taskqueue.taskqueue.TaskTooLargeErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

A tarefa é muito grande com os cabeçalhos e o payload.

exception google.appengine.api.taskqueue.taskqueue.TombstonedTaskErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

A tarefa foi marcada como excluída.

Uma tarefa com o mesmo nome foi executada anteriormente na fila. Os nomes precisam ser exclusivos dentro de uma fila.

exception google.appengine.api.taskqueue.taskqueue.TooManyTasksErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

Muitas tarefas estavam presentes em uma única chamada de função.

exception google.appengine.api.taskqueue.taskqueue.TransientErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

Ocorreu um erro temporário durante o acesso à fila. Tente novamente mais tarde.

exception google.appengine.api.taskqueue.taskqueue.UnknownQueueErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

A fila especificada é desconhecida.

exception google.appengine.api.taskqueue.taskqueue.InvalidLeaseTimeErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

O período de alocação é inválido.

exception google.appengine.api.taskqueue.taskqueue.InvalidMaxTasksErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

O número máximo solicitado de tarefas em lease_tasks é inválido.

exception google.appengine.api.taskqueue.taskqueue.InvalidDeadlineErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

O prazo solicitado em lease_tasks é inválido.

exception google.appengine.api.taskqueue.taskqueue.InvalidQueueModeErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

Invoca uma operação de fila pull em uma fila push ou vice-versa.

exception google.appengine.api.taskqueue.taskqueue.TransactionalRequestTooLargeErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.TaskTooLargeError

O tamanho total dessa transação (inclusive tarefas) era muito grande.

exception google.appengine.api.taskqueue.taskqueue.TaskLeaseExpiredErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

Não foi possível renovar a alocação da tarefa porque ela já havia expirado.

exception google.appengine.api.taskqueue.taskqueue.QueuePausedErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

A fila está pausada e não pode processar solicitações de alocação de tarefa de modificação.

exception google.appengine.api.taskqueue.taskqueue.InvalidEtaErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

O tempo estimado de chegada da tarefa é inválido.

exception google.appengine.api.taskqueue.taskqueue.InvalidTagErrorsource

Bases: google.appengine.api.taskqueue.taskqueue.Error

A tag especificada é inválida.

class google.appengine.api.taskqueue.taskqueue.Queue(name='default')source

Bases: object

Representa uma fila.

A classe Queue é usada para preparar tarefas para execução off-line pelo App Engine.

Um objeto de fila é instanciado por nome. O nome precisa corresponder à fila padrão (fornecida pelo sistema) ou a uma fila definida pelo usuário, conforme especificado no arquivo de configuração queue.yaml do aplicativo. O objeto de fila pode ser usado para inserir novas instâncias de tarefa para execução off-line pelo App Engine.

Vários objetos de fila podem corresponder à mesma fila de sistemas subjacentes. No entanto, um único objeto de tarefa só pode ser adicionado a uma fila.

add(task, transactional=False)source

Adiciona uma tarefa ou uma lista de tarefas a essa fila.

Se uma lista de mais de uma tarefa for fornecida, uma exceção gerada não garantirá que nenhuma tarefa tenha sido adicionada à fila (a menos que transactional esteja definido como True). Para determinar quais tarefas foram adicionadas com êxito quando uma exceção é gerada, verifique a propriedade Task.was_enqueued.

As tarefas push ou aquelas com um método diferente de pull não podem ser adicionadas a filas em modo pull. Da mesma maneira, as tarefas pull não podem ser adicionadas a filas em modo push.

Se um TaskAlreadyExistsError ou um TombstonedTaskError for gerado, o autor da chamada poderá ter a certeza de que, para cada tarefa fornecida, a tarefa correspondente terá sido adicionada com êxito, ou uma tarefa com o nome indicado terá sido adicionada com êxito anteriormente.

Parâmetros
  • task: uma instância ou lista de instâncias de tarefa que serão adicionadas à fila. Se task estiver definida como uma lista de objetos de tarefa, todas as tarefas serão adicionadas à fila. Se Transactional=True, todas as tarefas serão adicionadas na mesma transação do Datastore ativa. Se nenhuma das tarefas puder ser adicionada à fila, a adição não ocorrerá, e a transação do Datastore falhará. Se transactional=False, uma falha durante a adição de qualquer tarefa à fila gerará uma exceção, mas outras tarefas serão adicionadas à fila.

  • transactional: se True, as tarefas transacionais serão adicionadas à fila, mas não poderão ser executadas ou alocadas até a transação ser bem-sucedida. Se a transação falhar, as tarefas serão removidas da fila (e, assim, nunca serão executadas). Se False, as tarefas adicionadas estarão disponíveis para execução imediata. O êxito ou a falha de qualquer transação presente é ignorado.

Retorna

A tarefa ou a lista de tarefas que foi fornecida para esse método. As tarefas enfileiradas com êxito terão um nome de fila e um nome de tarefa válidos depois da chamada. Esses objetos de tarefa são marcados como enfileirados e não podem ser readicionados.

Gera
  • BadTaskStateError: caso a tarefa já tenha sido adicionada a uma fila.

  • BadTransactionStateError: caso o argumento transactional seja True, mas essa chamada seja feita fora do contexto de uma transação.

  • DuplicateTaskNameError: caso um nome de tarefa esteja repetido na solicitação.

  • InvalidTaskNameError: caso um nome de tarefa seja fornecido, mas não seja válido.

  • InvalidTaskError: caso haja tarefas push e pull na lista de tarefas.

  • InvalidQueueModeError: caso uma tarefa pull seja adicionada a uma fila em modo push ou caso uma tarefa tenha sido adicionada a uma fila em modo pull.

  • TaskAlreadyExistsError: caso uma tarefa com o mesmo nome já tenha sido adicionada à fila.

  • TombstonedTaskError: caso uma tarefa com o mesmo nome já tenha sido adicionada à fila e excluída.

  • TooManyTasksError: caso uma tarefa contenha mais de MAX_TASKS_PER_ADD tarefas.

  • TransactionalRequestTooLargeError: caso transactional seja True e o tamanho total das tarefas e os dados de solicitação de suporte excedam a cota MAX_TRANSACTIONAL_REQUEST_SIZE_BYTES.

  • Subclasse de erro em erros de aplicativo.

add_async(task, transactional=False, rpc=None)source

Adiciona de maneira assíncrona uma tarefa ou uma lista de tarefas a essa fila.

Essa função é idêntica a add(), exceto pelo fato de retornar um objeto assíncrono. Chame get_result() no valor de retorno para bloquear a chamada.

Parâmetros
  • task: uma instância ou lista de instâncias de tarefa que serão adicionadas à fila. Se task for uma lista de objetos de tarefa, todas as tarefas serão adicionadas à fila. Se Transactional=True, todas as tarefas serão adicionadas à mesma transação do Datastore ativa. Se nenhuma das tarefas puder ser adicionada à fila, a adição não ocorrerá, e a transação do Datastore falhará. Se transactional=False, uma falha na adição de uma tarefa à fila gerará uma exceção, mas outras tarefas serão enfileiradas.

  • transactional: se True, as tarefas transacionais serão adicionadas à fila, mas não poderão ser executadas ou alocadas até a transação ser bem-sucedida. Se a transação falhar, as tarefas serão removidas da fila (e, assim, jamais serão executadas). Se False, as tarefas adicionadas estarão disponíveis para execução imediata. O êxito ou a falha de qualquer transação presente é ignorado.

  • rpc: um objeto UserRPC opcional.

Retorna

Um objeto UserRPC. Chame get_result() para concluir o RPC e receber a tarefa ou a lista de tarefas fornecida para esse método. As tarefas enfileiradas com êxito terão um nome de fila e um nome de tarefa válidos depois da chamada. Esses objetos de tarefa são marcados como enfileirados e não podem ser readicionados.

Gera
delete_tasks(task)source

Exclui uma tarefa ou uma lista de tarefas nessa fila.

Quando várias tarefas forem especificadas, uma exceção será gerada se alguma tarefa individual deixar de ser excluída. Verifique a propriedade task.was_deleted.

O nome da tarefa é o único atributo usado a fim de selecionar tarefas para exclusão. Se houver alguma tarefa não nomeada ou com a propriedade was_deleted definida como True, um BadTaskStateError será gerado imediatamente.

Parâmetros

task: uma instância ou lista de instâncias de tarefa que serão excluídas da fila.

Retorna

A tarefa ou a lista de tarefas passadas para essa chamada.

Gera
  • BadTaskStateError: caso as tarefas a serem excluídas não tenham nomes de tarefa ou já tenham sido excluídas.

  • DuplicateTaskNameError: caso uma tarefa seja repetida na solicitação.

  • Subclasse de erro em erros de aplicativo.

delete_tasks_async(task, rpc=None)source

Exclui de maneira assíncrona uma tarefa ou uma lista de tarefas nesta fila.

O nome da tarefa é o único atributo usado a fim de selecionar tarefas para exclusão.

Essa função é idêntica a delete_tasks(), exceto pelo fato de retornar um objeto assíncrono. Chame get_result() no valor de retorno para bloquear a chamada.

Parâmetros
  • task: uma instância ou lista de instâncias de tarefa que serão excluídas da fila.

  • rpc: um objeto UserRPC opcional.

Retorna

Um objeto UserRPC. Chame get_result() para concluir o RPC e receber a tarefa ou a lista de tarefas passada para essa chamada.

Gera
delete_tasks_by_name(task_name)source

Exclui uma tarefa ou uma lista de tarefas nesta fila, por nome.

Quando várias tarefas forem especificadas, uma exceção será gerada se alguma tarefa individual deixar de ser excluída.

Parâmetros

task_name: uma string correspondente a um nome de tarefa, ou um iterável de strings correspondentes aos nomes de tarefa.

Retorna

Caso seja um iterável, diferente da string, seja fornecido como entrada, uma lista de objetos de tarefa é retornada, uma para cada nome de tarefa na ordem solicitada. A propriedade Task.was_deleted será True para cada tarefa excluída por essa chamada, e ela será False para tarefas desconhecidas e marcadas como excluídas.

Do contrário, se uma única string for fornecida como entrada, um único objeto de tarefa será retornado.

Gera
  • DuplicateTaskNameError: caso um nome de tarefa esteja repetido na solicitação.

  • Subclasse de erro em erros de aplicativo.

delete_tasks_by_name_async(task_name, rpc=None)source

Exclui de maneira assíncrona uma tarefa ou uma lista de tarefas nesta fila, por nome.

Essa função é idêntica a delete_tasks_by_name(), exceto pelo fato de retornar um objeto assíncrono. Chame get_result() no valor de retorno para bloquear a chamada.

Parâmetros
  • task_name: uma string correspondente a um nome de tarefa, ou um iterável de strings correspondentes aos nomes de tarefa.

  • rpc: um objeto UserRPC opcional.

Retorna

Um objeto UserRPC. Chame get_result() para concluir o RPC e receber o resultado.

Caso seja um iterável, diferente da string, seja fornecido como entrada, o resultado é uma lista de objetos de tarefa, uma para cada nome de tarefa na ordem solicitada. A propriedade Task.was_deleted será True para cada tarefa excluída por essa chamada e será False para tarefas desconhecidas e marcadas como excluídas.

Do contrário, se uma única string for fornecida como entrada, o resultado será um único objeto de tarefa.

Gera

DuplicateTaskNameError: caso um nome de tarefa esteja repetido na solicitação.

fetch_statistics(deadline=10)source

Recebe os detalhes atuais sobre essa fila.

Parâmetros

deadline: o número máximo de segundos para aguardar antes de cancelar a chamada de método.

Retorna

Uma instância QueueStatistics que contém informações sobre essa fila. Subclasse de erro em erros de aplicativo.

fetch_statistics_async(rpc=None)source

Recebe de maneira assíncrona os detalhes atuais sobre essa fila.

Parâmetros

rpc: um objeto UserRPC opcional.

Retorna

Um objeto UserRPC. Chame get_result() para concluir o RPC e receber uma instância QueueStatistics que contenha informações sobre essa fila.

lease_tasks(lease_seconds, max_tasks, deadline=10)source

Aloca um número de tarefas da fila para um período.

Esse método só pode ser realizado em uma fila pull. Qualquer tarefa não pull na fila pull será convertida em tarefa pull quando estiver sendo alocada. Se menos do que o número especificado de max_tasks estiver disponível, todas as tarefas disponíveis serão retornadas. O método lease_tasks é compatível com a alocação de, no máximo, 1.000 tarefas por não mais do que uma semana em uma única chamada.

Parâmetros
  • lease_seconds: número de segundos para alocação das tarefas, até uma semana (604.800 segundos). Precisa ser um inteiro positivo.

  • max_tasks: o número máximo de tarefas a serem alocadas pela fila pull, até 1.000 tarefas.

  • deadline: o número máximo de segundos para aguardar antes de cancelar a chamada de método.

Retorna

Uma lista de tarefas alocadas pela fila.

Gera
  • InvalidLeaseTimeError: caso lease_seconds não seja um flutuante válido ou um número inteiro esteja fora do intervalo válido.

  • InvalidMaxTasksError: caso max_tasks não seja um inteiro válido ou esteja fora do intervalo válido.

  • InvalidQueueModeError: caso invocado em uma fila que não esteja em modo pull.

  • Subclasse de erro em erros de aplicativo.

lease_tasks_async(lease_seconds, max_tasks, rpc=None)source

Aloca de maneira assíncrona várias tarefas da fila.

Esse método só pode ser realizado em uma fila pull. As tentativas de alocar tarefas de uma fila push resultam em um InvalidQueueModeError. Todas as tarefas não pull na fila pull serão convertidas em tarefas pull quando alocadas. Se menos do que o valor especificado de max_tasks estiver disponível, todas as tarefas disponíveis serão retornadas da melhor maneira possível. O método lease_tasks_async é compatível com a alocação de, no máximo, 1.000 tarefas por não mais do que uma semana em uma única chamada.

Essa função é idêntica a lease_tasks(), exceto pelo fato de retornar um objeto assíncrono. Chame get_result() no valor de retorno para bloquear a chamada.

Parâmetros
  • lease_seconds: número de segundos para alocação das tarefas, até uma semana (604.800 segundos). Precisa ser um inteiro positivo.

  • max_tasks: número máximo de tarefas a serem alocadas pela fila pull, até 1.000 tarefas.

  • rpc: um objeto UserRPC opcional.

Retorna

Um objeto UserRPC. Chame get_result() para concluir o RPC e receber a tarefa ou a lista de tarefas alocada pela fila.

Gera
  • InvalidLeaseTimeError: caso lease_seconds não seja um flutuante válido ou um número inteiro esteja fora do intervalo válido.

  • InvalidMaxTasksError: caso max_tasks não seja um inteiro válido ou esteja fora do intervalo válido.

lease_tasks_by_tag(lease_seconds, max_tasks, tag=None, deadline=10)source

Aloca tarefas com a mesma tag da fila.

Se uma tag for especificada, as tarefas com essa tag serão alocadas por um período especificado. Se uma tag não for especificada, a tag da tarefa mais anterior da fila (especificada pelo eta) será usada.

Esse método só pode ser realizado em uma fila pull. Qualquer tarefa não pull na fila pull será convertida em tarefa pull quando estiver sendo alocada. Se menos do que o valor especificado de max_tasks estiver disponível, todas as tarefas disponíveis serão retornadas. O método lease_tasks é compatível com a alocação de, no máximo, 1.000 tarefas por não mais do que uma semana em uma única chamada.

Parâmetros
  • lease_seconds: número de segundos para alocar as tarefas.

  • max_tasks: o número máximo de tarefas a serem alocadas pela fila pull.

  • tag: a tag a ser consultada ou None para agrupar pela primeira tag disponível.

  • deadline: o número máximo de segundos para aguardar antes de cancelar a chamada de método.

Retorna

Uma lista de tarefas alocadas pela fila.

Gera
  • InvalidLeaseTimeError: caso lease_seconds não seja um flutuante válido ou um número inteiro esteja fora do intervalo válido.

  • InvalidMaxTasksError: caso max_tasks não seja um inteiro válido ou esteja fora do intervalo válido.

  • InvalidQueueModeError: caso invocado em uma fila que não esteja em modo pull.

  • Subclasse de erro em erros de aplicativo.

lease_tasks_by_tag_async(lease_seconds, max_tasks, tag=None, rpc=None)source

Aloca de maneira assíncrona tarefas com a mesma tag da fila.

Se uma tag for especificada, as tarefas com essa tag serão alocadas por um período especificado. Se uma tag não for especificada, a tag mais antiga da tarefa anterior da fila (especificada pelo eta) será usada da melhor maneira possível.

Essa função é idêntica a lease_tasks_by_tag(), exceto pelo fato de retornar um objeto assíncrono. Chame get_result() no valor de retorno para bloquear a chamada.

Parâmetros
  • lease_seconds: número de segundos para alocar as tarefas.

  • max_tasks: o número máximo de tarefas a serem alocadas pela fila pull.

  • tag: a tag a ser consultada ou None para agrupar pela primeira tag disponível.

  • rpc: um objeto UserRPC opcional.

Retorna

Um objeto UserRPC. Chame get_result() para concluir o RPC e receber a tarefa ou a lista de tarefas alocada pela fila.

Gera
  • InvalidLeaseTimeError: caso lease_seconds não seja um flutuante válido ou um número inteiro esteja fora do intervalo válido.

  • InvalidMaxTasksError: caso max_tasks não seja um inteiro válido ou esteja fora do intervalo válido.

modify_task_lease(task, lease_seconds)source

Modifica a alocação de uma tarefa nesta fila.

Parâmetros
  • task: uma instância de tarefa que terá a alocação modificada.

  • lease_seconds: número de segundos, do horário atual, para o qual a alocação da tarefa será modificada. Se lease_seconds for 0, a alocação da tarefa será removida, e a tarefa estará disponível para nova alocação usando-se o método lease_tasks.

Gera
  • TypeError: caso lease_seconds não seja um flutuante válido ou inteiro.

  • InvalidLeaseTimeError: caso lease_seconds esteja fora do intervalo válido.

  • Subclasse de erro em erros de aplicativo.

name

Retorna o nome desta fila.

purge()source

Remove todas as tarefas desta fila.

A limpeza da fila é um processo demorado, independentemente do tamanho dela. As tarefas continuam sendo executadas até os back-ends reconhecerem que a fila foi limpa. Essa operação é permanente. As tarefas limpas não podem ser recuperadas.

Gera

Subclasse de erro em erros de aplicativo.

class google.appengine.api.taskqueue.taskqueue.QueueStatistics(queue, tasks, oldest_eta_usec=None, executed_last_minute=None, in_flight=None, enforced_rate=None)source

Bases: object

Representa o estado atual de uma fila.

classmethod fetch(queue_or_queues, deadline=10)source

Receba os detalhes de várias filas.

Use QueueStatistics.fetch() para receber objetos QueueStatistics das filas em que você tem interesse. Especifique uma ou mais filas.

Exemplo:

statsList = taskqueue.QueueStatistics.fetch([taskqueue.Queue("foo"),
                                             taskqueue.Queue("bar")])
Parâmetros
  • queue_or_queues: a fila ou a lista de filas para as quais você recebe estatísticas. Se estiver recuperando estatísticas de uma única fila, você poderá fornecer uma instância de fila ou o nome dela. Se estiver recuperando estatísticas de uma lista de filas, você poderá fornecer uma lista iterável de instâncias de fila ou de nomes de fila.

  • deadline: o número máximo de segundos para aguardar antes de cancelar a chamada de método.

Retorna

Se um iterável (diferente da string) for fornecido como entrada, uma lista de objetos QueueStatistics será retornada, uma para cada fila na ordem solicitada.

Do contrário, se um único item for fornecido como entrada, um único objeto QueueStatistics será retornado.

Gera
  • TypeError: caso queue_or_queues não seja uma instância de fila, uma string, um iterável que contenha apenas instâncias de fila ou um iterável que contenha apenas strings.

  • Subclasse de erro em erros de aplicativo.

classmethod fetch_async(queue_or_queues, rpc=None)source

Receba de maneira assíncrona os detalhes de várias filas.

Exemplo:

rpc = taskqueue.create_rpc(deadline=1.0)
taskqueue.QueueStatistics.fetch_async([taskqueue.Queue("foo"),
                                        taskqueue.Queue("bar")], rpc)
statsList = rpc.get_result()
Parâmetros
  • queue_or_queues: a fila ou a lista de filas para as quais você recebe estatísticas. Se estiver recuperando estatísticas de uma única fila, você poderá fornecer uma instância de fila ou o nome dela. Se estiver recuperando uma lista de filas, você poderá fornecer uma lista iterável de instâncias de fila ou uma lista iterável de nomes de fila.

  • rpc: um objeto UserRPC opcional.

Retorna

Um objeto UserRPC. Chame get_result() para concluir o RPC e receber o resultado.

Se um iterável (diferente da string) for fornecido como entrada, o resultado será uma lista de objetos QueueStatistics, para cada fila na ordem solicitada.

Do contrário, se um único item tiver sido fornecido como entrada, o resultado será um único objeto QueueStatistics.

Gera

TypeError: caso queue_or_queues não seja uma instância de fila, uma string, um iterável que contenha apenas instâncias de fila ou um iterável que contenha apenas strings.

class google.appengine.api.taskqueue.taskqueue.Task(payload=None, **kwargs)source

Bases: object

Representa uma única tarefa em uma fila.

A classe Task permite que um aplicativo enfileire o trabalho em segundo plano. O trabalho é feito por meio de webhooks que processam tarefas enviadas por uma fila push ou de trabalhadores que extraem manualmente tarefas pull de uma fila pull.

Em filas pull, a maioria das tarefas é entregue na melhor ordem possível de acordo com o tempo estimado de chegada.

Os webhooks com falhas fazem com que tarefas sejam repetidas depois. Você pode configurar a taxa e o número de novas tentativas em tarefas com falha. Especifique diretamente URLs de webhook para tarefas push. Você também usa o esquema de URL padrão, que converte nomes de tarefa em URLs relativos ao caminho base de uma fila. Uma fila padrão também é fornecida para uso simples.

Em filas pull, os trabalhadores serão responsáveis por alocar tarefas, processá-las e excluí-las depois do processamento. Configure o número de novas tentativas de tarefa, que se baseia em quantas vezes a tarefa foi alocada. Defina várias filas com controles de limitação independentes.

Você define as diversas propriedades de uma tarefa no construtor. Depois que o objeto Task for instanciado, você vai inserir essa tarefa em uma fila. Uma instância de tarefa só pode ser inserida em uma fila.

add(queue_name='default', transactional=False)source

Adiciona essa tarefa a uma fila. Consulte Queue.add.

add_async(queue_name='default', transactional=False, rpc=None)source

Adiciona de maneira assíncrona esta tarefa a uma fila. Consulte Queue.add_async.

eta

Retornará um datetime.datatime quando esta tarefa for executada ou alocada.

eta_posix

Retornará um carimbo de data/hora POSIX de quando esta tarefa for executada ou alocada.

extract_params()source

Retorna os parâmetros para esta tarefa.

Se o mesmo parâmetro de nome tiver vários valores, o valor será uma lista de strings. Para solicitações POST e tarefas pull, os parâmetros são extraídos do payload da tarefa. Para todos os outros métodos, os parâmetros são extraídos da string de consulta de URL.

Retorna

Um dicionário de strings que mapeiam nomes de parâmetro para os valores como strings. Se o mesmo parâmetro de nome tiver vários valores, o valor será uma lista de strings. Para solicitações POST e tarefas pull, os parâmetros serão extraídos do payload da tarefa. Para todos os outros métodos, os parâmetros serão extraídos da string de consulta de URL. Um dicionário vazio será retornado se a tarefa contiver um payload ou uma string de consulta vazia.

Gera

ValueError: caso o payload não contenha dados de application/x-www-form-urlencoded válidos (para solicitações POST e tarefas pull) ou o URL não contenha uma consulta válida (todas as outras solicitações).

headers

Retorna uma cópia dos cabeçalhos HTTP desta tarefa (somente tarefas push).

method

Retorna o método a ser usado nesta tarefa.

name

Retorna o nome desta tarefa.

on_queue_url

Retorna True caso a tarefa seja executada no URL padrão da fila (somente tarefas push).

payload

Retorna o payload a ser usado quando a tarefa for invocada (pode ser None).

queue_name

Retorna o nome da fila ao qual esta tarefa está associada.

retry_count

Retorna o número de novas tentativas ou concessões tentadas na tarefa.

retry_options

Retorna qualquer uma ou todas as tarefas TaskRetryOptions.

size

Retorna o tamanho desta tarefa em bytes.

tag

Retorna a tag desta tarefa.

target

Retorna o alvo desta tarefa.

url

Retorna o URL relativo a esta tarefa (somente tarefas push).

was_deleted

Retorna True caso esta tarefa tenha sido excluída com êxito.

was_enqueued

Retorna True caso esta tarefa tenha sido inserida em uma fila.

class google.appengine.api.taskqueue.taskqueue.TaskRetryOptions(**kwargs)source

Bases: object

As opções usadas para decidir quando uma tarefa com falha será repetida.

As tarefas em execução na fila de tarefas podem falhar por muitos motivos. Se uma tarefa deixar de ser executada, o que é indicado pelo retorno de qualquer código de status HTTP fora do intervalo de 200 a 299, o App Engine repetirá a tarefa até ser bem-sucedido. Por padrão, o sistema reduz gradualmente a taxa de novas tentativas para evitar inundar o aplicativo com muitas solicitações, mas programa novas tentativas para recorrer no máximo uma vez por hora até que a tarefa seja bem-sucedida. Porém, os erros 503 são tratados como casos especiais e não precisam ser retornados por código do usuário.

A classe TaskRetryOptions fornece as propriedades que você pode usar para decidir quando repetir uma tarefa com falha em tempo de execução.

max_backoff_seconds

O número máximo de segundos para aguardar antes de repetir uma tarefa.

max_doublings

O número de vezes em que o intervalo de repetição será dobrado.

min_backoff_seconds

O número mínimo de segundos para aguardar antes de repetir uma tarefa.

task_age_limit

O número de segundos depois do qual uma tarefa com falha não será repetida.

task_retry_limit

O número de vezes em que uma tarefa com falha será repetida.

google.appengine.api.taskqueue.taskqueue.add(*args, **kwargs)source

Método prático que cria uma tarefa e a adiciona a uma fila.

Todos os parâmetros são opcionais.

As tarefas push não podem ser adicionadas a filas em modo pull. Da mesma maneira, as tarefas pull não podem ser adicionadas a filas em modo push.

Parâmetros
  • payload: os dados de payload desta tarefa que serão entregues ao webhook ou ao back-end como o corpo de solicitação HTTP (para filas push) ou buscados por trabalhadores como parte da resposta de lease_tasks() (para filas pull). Esse argumento só é permitido para os métodos POST e PUT e para tarefas pull.

  • queue_name: nome da fila na qual inserir a tarefa. Caso um nome não seja fornecido, assume como padrão a fila padrão.

  • name: nome a ser dado à tarefa. Se não for especificado, um nome será gerado automaticamente quando adicionado a uma fila e atribuído a esse objeto. O nome precisa corresponder à expressão regular _TASK_NAME_PATTERN.

  • method: método a ser usado ao acessar o webhook. O valor padrão é POST. Outros valores aceitos são GET, PUT, DELETE, HEAD ou PULL. Não especifique um método para tarefas push porque ele assumirá POST como padrão, e as tarefas atribuídas ao webhook serão especificadas no url. Se você definir o method como PULL, a tarefa não será entregue automaticamente ao webhook. Em vez disso, ela permanecerá na fila até ser alocada.

  • url: URL relativo em que o webhook que precisa processar essa tarefa esteja localizado para este aplicativo. Use uma string de consulta, a menos que esse argumento seja usado em um método POST. Não é possível usar esse argumento em uma tarefa pull.

  • headers: dicionário de cabeçalhos a serem passados para o webhook. Valores no dicionário podem ser iteráveis para indicar campos de cabeçalho repetidos. Se você não especificar um cabeçalho Content-Type para um método PUSH, o cabeçalho padrão (text/plain) será usado. Se você especificar um cabeçalho Host para um método PUSH, não especifique um argumento de target. Não é possível usar um argumento header em uma tarefa pull. Todos os cabeçalhos que usarem o prefixo X-AppEngine também serão descartados.

  • params: dicionário de parâmetros a serem usados nesta tarefa. Em solicitações POST e pull, os valores no dicionário podem ser iteráveis para indicar parâmetros repetidos, e esses parâmetros serão codificados como application/x-www-form-urlencoded e definidos como payload. Para solicitações POST e pull, não especifique parâmetros caso você já tenha especificado um payload. Em solicitações PUT, os parâmetros são convertidos em uma string de consulta caso o URL contenha uma string de consulta ou caso a tarefa já tenha um payload. Em solicitações PUT, não especifique parâmetros caso o URL já contenha uma string de consulta e o método seja GET. Em todos os outros métodos, os parâmetros serão convertidos em uma string de consulta.

  • transactional: optional. Se True, adicionará tarefas somente se a transação presente for confirmada com êxito. Um erro será retornado se esse argumento estiver definido como True na ausência de uma transação presente. Caso False, adiciona as tarefas imediatamente, ignorando o êxito ou a falha de qualquer transação presente.

  • countdown: tempo em segundos no futuro em que esta tarefa será executada ou alocada. Assume zero como padrão. Não especifique este argumento caso você tenha especificado um eta.

  • eta: um datetime.datetime que especifica o primeiro horário absoluto em que a tarefa precisa ser executada. Não será possível especificar esse argumento se o argumento countdown for especificado. Esse argumento pode considerar ou não o fuso horário ou ser definido como um horário no passado. Se o argumento estiver definido como None, o valor padrão será agora. Para tarefas pull, nenhum trabalhador pode alocar a tarefa antes do tempo indicado pelo argumento eta.

  • retry_options: TaskRetryOptions usado para controlar quando a tarefa será repetida se falhar. Para tarefas pull, só especifique a opção task_retry_limit para especificar o número de vezes em que uma tarefa pode ser alocada antes de ser excluída da fila. Para tarefas push, especifique as opções min_backoff_seconds, max_backoff_seconds, task_age_limit, max_doublings e task_retry_limit.

  • tag: a tag a ser usada durante o agrupamento por tag (somente tarefas pull).

  • target: somente tarefas push. Especifica a versão alternativa ou o back-end na qual executa esta tarefa, ou DEFAULT_APP_VERSION para execução na versão padrão do aplicativo. Especifique um módulo ou uma versão, uma versão front-end ou um back-end no qual executar essa tarefa. A string especificada será anexada ao nome de domínio do app. Se você especificar o argumento target, não especifique um cabeçalho Host no dicionário do argumento headers.

Retorna

A tarefa que foi adicionada à fila.

Gera
google.appengine.api.taskqueue.taskqueue.create_rpc(deadline=None, callback=None)source

Cria um objeto RPC a ser usado com a Task Queue API.

Parâmetros
  • deadline: prazo opcional em segundos para a operação. O valor padrão é um prazo específico do sistema, geralmente de cinco segundos. Depois do prazo, um erro DeadlineExceededError será retornado.

  • callback: a função opcional a ser chamada com o serviço da fila de tarefas retorna resultados com êxito quando get_result(), check_success() ou wait() é invocado no objeto RPC. A função é chamada sem argumentos. A função não é chamada em um processo ou thread em segundo plano. A função só é chamada quando um dos métodos acima é chamado pelo aplicativo. A função será chamada mesmo se a solicitação falhar ou se o prazo de RPC expirar.

Retorna

Um objeto apiproxy_stub_map.UserRPC especializado para esse serviço.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2