Skip to content
Snippets Groups Projects
Commit 09bae79b authored by vscherbo's avatar vscherbo
Browse files

skip sond_send if err_cnt >=3

parent fe3b0c1f
No related branches found
No related tags found
No related merge requests found
...@@ -10,11 +10,17 @@ res varchar; ...@@ -10,11 +10,17 @@ res varchar;
BEGIN BEGIN
SELECT port INTO loc_port FROM arc_energo.topic WHERE tag = NEW.tag; SELECT port INTO loc_port FROM arc_energo.topic WHERE tag = NEW.tag;
FOR rec IN SELECT tag, ip FROM arc_energo.topic_subs WHERE tag = NEW.tag FOR rec IN SELECT tag, ip, err_cnt FROM arc_energo.topic_subs WHERE tag = NEW.tag AND (err_cnt < 3 OR err_cnt IS NULL)
LOOP LOOP
host_to := host(rec.ip); host_to := host(rec.ip);
-- res := NULLIF(sock_send(host_to, loc_port, NEW.msg_id::varchar), ''); -- res := NULLIF(sock_send(host_to, loc_port, NEW.msg_id::varchar), '');
res := sock_send(host_to, loc_port, NEW.msg_id::varchar); res := sock_send(host_to, loc_port, NEW.msg_id::varchar);
IF res = '' THEN
UPDATE arc_energo.topic_subs SET err_cnt = 0 WHERE tag = rec.tag AND ip = rec.ip;
ELSIF res LIKE '%timed out%' THEN
UPDATE arc_energo.topic_subs SET err_cnt = COALESCE(rec.err_cnt, 0) + 1 WHERE tag = rec.tag AND ip = rec.ip;
END IF;
INSERT INTO arc_energo.topic_msg_queue(ip, msg_id, status, sent_result) INSERT INTO arc_energo.topic_msg_queue(ip, msg_id, status, sent_result)
VALUES(rec.ip, NEW.msg_id, VALUES(rec.ip, NEW.msg_id,
CASE WHEN res='' THEN 10 ELSE 20 END, CASE WHEN res='' THEN 10 ELSE 20 END,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment