Configura o uso da Fila usando a infra estrutura da AWS SQS para mantê-la e permite a configuração dos parâmetros de temporização de tratamento e de manutenção das mensagens.
Sintaxe
nRet := oTQLS:SetupSQS(cRegiao, cCred, cCredKey [, nMsgRetPeriod] [, nVisibTimeOut])
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Default | Referência | Observações |
---|---|---|---|---|---|---|
cRegiao | caractere | Define a região onde a fila será criada | X | Ex. SA-EAST-1 (South America (Sao Paulo)) http://docs.aws.amazon.com/pt_br/general/latest/gr/rande.html | ||
cCred | caractere | Credencial para acessar os serviços de Fila | X | |||
cCredKey | caractere | Chave da credencial de acesso à Fila | X | |||
nMsgRetPeriod | numérico | Tempo de retenção de uma mensagem na Lista em segundos (Tempo de armazenamento de Mensagem não tratada) | 1209600 (14 dias) | Se uma mensagem não retirada da fila ficar mais que este tempo, ela será descartada. Mínimo permitido 60 segundos, máximo permitido 14 dias (1209600 segundos). | ||
nVisibTimeOut | numérico | Tempo de espera de tratamento de mensagem em segundos (Tempo de tratamento da Mensagem) | 45 | Se a mensagem retirada na Fila não for tratada e removida até este tempo, ela será colocada na Fila novamente para tratamento. Mínimo permitido 5 segundos, máximo permitido 12 horas (43200 segundos). |
Retorno
Nome | Tipo | Descrição | Observações |
---|---|---|---|
nRet | numérico | Contém a indicação do erro ou 0 (zero) se OK |
Observações
- Se
nMsgRetPeriod
não for informado (Nil
) ou se tiver valor igual a0
(zero),nMsgRetPeriod
usará o valor default, todavia senMsgRetPeriod
for passado como-1
, a fila irá recuperar o valor denMsgRetPeriod
de uma fila previamente criada, não alterando assim o valor já registrado nesta nessa fila. - Se
nVisibTimeOut
não for informado (Nil
) ou se tiver valor igual a 0 (zero), nVisibTimeOut usará o valor default, todavia se nVisibTimeOut for passado com '-1' irá recuperar o valor de nVisibTimeOut de uma Fila previamente criada, não alterando assim o valor já registrado nesta na Fila. - Obs. se a Fila não tiver sido criada previamente e em nMsgRetPeriod e/ou nVisibTimeOut forem passado como '-1', os valores recuperados serão os valores padrão para criação de Filas da SQS.
- Não é demais reforçar que os tempos de visibilidade devem ser ajustados de acordo com o comportamento do aplicativo onde as filas serão usadas.
Tempos de visibilidade menores do que o tempo necessário para que a aplicação remova uma mensagem farão com que a mensagem retorne para a fila e seja novamente recebida.
Exemplos
Exemplo
#include 'protheus.ch' // Setup AWS Static cRegiao := "SA-EAST-1" Static cCred := "RICARDOLIMA732CREDID" Static cCredKey := "7O8US89ZjbcwuxdyL361IEWOSEmYQChlln6hMK/r" User Function stpFila() Local nRet := 0 // Nome da Fila Local cQueueName := "Fila_TQLS" // Tempo de espera de tratamento de mensagem Local nVisibTimeOut := 32 // segundos // 0 usa o default // -1 recupara o valor // Tempo de armazenamento da mensagem Local nMsgRetPeriod := (7 * 24 * 60 * 60) // 7 dias (em segundos) // 0 usa o default // -1 recupara o valor // Objeto de Fila Local oTQLS := Nil // Cria um novo objeto de Fila oTQLS := TQueueSvc():New(cQueueName) If(oTQLS == Nil) ConOut("### ERRO ### " + "Erro na criacao da Fila - " + cQueueName) Return .F. Else ConOut("Criacao da Fila OK - " + oTQLS:cName) EndIf // Configurando a Fila AWS SQS nRet := oTQLS:SetupSQS(cRegiao, cCred, cCredKey, nMsgRetPeriod, nVisibTimeOut) If nRet != 0 ConOut("### ERRO ### " + "Erro ao fazer o Setup" + " Erro: " + AllTrim(Str(nRet))) Return .F. Else ConOut("Setup de Fila OK - " + oTQLS:cName) EndIf Return .T.