Três formas de escrever uma regra que nunca é verdadeira
Cada uma destas carrega sem reclamar, não dá match em nada e custa uma tarde.A gramática
Target é
uma instância de worker (vendor1, smppserver.smpp), um grupo, ou outra tabela para encadear
(MESSAGE).
- Painel de controle
- routingTable.conf
Routing lista cada tabela com suas regras em ordem. O editor valida o operador contra o campo
antes de salvar, recusa um operador numérico em um campo de texto, e avisa sobre uma expressão
regular escrita em um operador literal.
Operadores
Qualquer operador pode ser negado com um! na frente.
As quatro comparações de texto são lexicográficas, não numéricas.
greaterThan em um número de
telefone compara strings.
Quem enviou
product é como um cliente seleciona roteamento por sessão: a mesma credencial fazendo bind com
system_type=premium e system_type=bulk produz duas sessões que roteiam de formas diferentes. Veja
Conceitos.
Tipos de mensagem para regras de type: 0 texto, 10 binário, 11 UCS-2, 14 flash, 17 push,
18 delivery receipt.
Condições no alvo, não na mensagem
Prefixar um campo comtarget. lê um campo do worker de destino em vez do da mensagem, que é como uma
regra desvia de um fornecedor que está acumulando fila:
queueSize, sentPendingRate, sentDeliveredRate, sentFailRate —
comparados sem distinção de maiúsculas, e um não reconhecido é recusado no parse listando os quatro.
marginPercentage e marginStatus são campos da mensagem, então tire o prefixo target. e eles
resolvem. Fique atento ao que eles contêm: ambos são definidos na resposta do submit, depois de a
mensagem ter partido, então uma condição de roteamento em qualquer um lê NOT_CALCULATED em toda
primeira tentativa.Copiar e continuar
Um+ no alvo copia a mensagem para aquele alvo e continua o scan, em vez de rotear e parar. No
banco isso é a coluna copied.
Grupos de fornecedores
Uma regra pode apontar para um grupo em vez de um fornecedor único. O grupo escolhe um membro, pulando qualquer um que esteja suspenso ou não aceitando. Esse skip é o failover que uma regra de alvo único não faz.Uma mensagem, um débito, um destino. Um grupo sempre seleciona exatamente um membro, e
+copied
em uma regra de grupo ainda copia para um membro. Fazer fan-out seria N envios contra uma única
cobrança.Se todos os membros estão down, a regra não envia nada, registra cause=group-all-dead nomeando todos
que tentou, e o scan continua para a próxima regra, que é o que mantém uma regra de fallback
escrita abaixo de uma regra de grupo alcançável.