Trois façons d’écrire une règle qui ne peut jamais être vraie
Chacune de celles-ci se charge sans se plaindre, ne correspond à rien, et coûte un après-midi.La grammaire
Target est une instance de worker (vendor1, smppserver.smpp), un groupe, ou une autre table
sur laquelle enchaîner (MESSAGE).
- Panneau de contrôle
- routingTable.conf
Routing liste chaque table avec ses règles dans l’ordre. L’éditeur valide l’opérateur par
rapport au champ avant l’enregistrement, refuse un opérateur numérique sur un champ texte, et
avertit à propos d’une expression régulière écrite dans un opérateur littéral.
Opérateurs
Tout opérateur peut être nié avec un! en tête.
Les quatre comparaisons texte sont lexicographiques, pas numériques :
greaterThan sur un numéro de
téléphone compare des chaînes.
Qui l’a envoyé
product est la façon dont un client sélectionne le routage par session : le même credential se
bindant avec system_type=premium et system_type=bulk produit deux sessions qui routent
différemment. Voir Concepts.
Types de message pour les règles type : 0 texte, 10 binaire, 11 UCS-2, 14 flash, 17 push,
18 accusé de livraison.
Conditions sur la cible, pas sur le message
Préfixer un champ avectarget. lit un champ du worker de destination à la place, ce qui permet à une
règle de contourner un fournisseur qui prend du retard :
queueSize, sentPendingRate, sentDeliveredRate, sentFailRate —
appariés sans tenir compte de la casse, et un champ non reconnu est refusé au parsing avec les quatre
listés.
marginPercentage et marginStatus sont des champs de message, donc retirez le préfixe target.
et ils se résolvent. Attention à ce qu’ils contiennent : les deux sont définis sur la réponse de
soumission, après que le message est parti, donc une condition de routage sur l’un ou l’autre lit
NOT_CALCULATED à chaque première tentative.Copier et continuer
Un+ sur la cible copie le message vers cette cible et continue à parcourir, au lieu de router et
d’arrêter. Dans la base de données, c’est la colonne copied.
Groupes de fournisseurs
Une règle peut cibler un groupe au lieu d’un seul fournisseur. Le groupe choisit un membre, en sautant tout membre suspendu ou n’acceptant pas — ce saut est le failover qu’une règle à cible unique ne peut pas faire.Un message, un débit, une destination. Un groupe sélectionne toujours exactement un membre, et
+copied sur une règle de groupe copie encore vers un seul membre — un fanout serait N envois pour un
seul débit.Si tous les membres sont hors service, la règle n’envoie rien, journalise cause=group-all-dead en
nommant tous ceux qu’elle a essayés, et le parcours continue vers la règle suivante, ce qui
maintient accessible une règle de repli écrite en dessous d’une règle de groupe.