Árvore de páginas

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.


Obs. Esta funcionalidade só está disponível em Linux, pra Windows use TQueueSvc:Setup


Sintaxe


nRet := oTQLS:SetupSQS(cRegiao, cCred, cCredKey [, nMsgRetPeriod] [, nVisibTimeOut])

Parâmetros

NomeTipoDescriçãoObrigatórioDefaultReferênciaObservaçõ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
caractereCredencial para acessar os serviços de FilaX


cCredKey 
caractereChave da credencial de acesso à FilaX


nMsgRetPeriodnumé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

NomeTipoDescriçãoObservações
nRetnumérico

Contém a indicação do erro ou 0 (zero) se OK


Abaixo listado alguns erros no nRet.

RetornoDescrição
-2

Parâmetros inválidos. 

-3Objeto não criado / Erro de setup.
-8Atributos de mensagem inválidos. 
-9Erro ao obter atributos da fila. 
-10Erro ao atualizar atributos da fila. 
-16Mensagem vazia, sem corpo.
-18Falha ao deletar uma mensagem da fila.
-19Falha ao remover uma fila.
-21Falha na execução do setup.
-100Não existe mensagens na fila.

Observações

  • Se nMsgRetPeriod não for informado (Nil) ou se tiver valor igual a 0 (zero), nMsgRetPeriod usará o valor default, todavia se nMsgRetPeriod for passado como -1, a fila irá recuperar o valor de nMsgRetPeriod de uma fila previamente criada, não alterando assim o valor já registrado nesta 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 como -1 irá recuperar o valor de nVisibTimeOut de uma fila previamente criada, não alterando assim o valor já registrado nesta fila.

  • Obs. se a fila não tiver sido criada previamente e nMsgRetPeriod e/ou nVisibTimeOut forem passado como -1, os valores recuperados serão os valores padrão para criação de Filas da SQS.

  • AVISO: 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 da fila farão com que a mensagem retorne para a fila e possa ser 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.
  • Sem rótulos