Skip to content
Snippets Groups Projects
Commit 03579e20 authored by vscherbo's avatar vscherbo
Browse files

confirm a message is received

parent 953a860c
No related branches found
No related tags found
No related merge requests found
CREATE OR REPLACE FUNCTION arc_energo.topic_msg_received(arg_msg_id integer)
RETURNS void
LANGUAGE sql
AS $function$
UPDATE topic_msg_queue SET delivered = array_append(delivered, inet_client_addr())
WHERE msg_id=arg_msg_id;
$function$
;
CREATE OR REPLACE FUNCTION arc_energo.topic_send(arg_msg_id integer)
RETURNS character varying
LANGUAGE plpgsql
AS $function$
DECLARE
loc_msg record;
rec RECORD;
res varchar;
BEGIN
SELECT *, t.port INTO loc_msg FROM arc_energo.topic_msg_queue q
JOIN arc_energo.topic t ON t.tag = loc_msg.tag
WHERE q.id=arg_msg_id;
IF FOUND THEN
FOR rec IN SELECT host(s.ip) AS host_to FROM arc_energo.topic_subs s WHERE tag = arg_topic_tag
LOOP
-- res := sock_send(host_to, loc_msg.port, loc_msg.msg);
res := sock_send(host_to, loc_msg.port, arg_msg_id);
IF res <> '' THEN
INSERT INTO arc_energo.topic_msg_log(msg_id, msg_log)
VALUES(arg_msg_id, format('ошибка отправки host_to=%s', host_to));
END IF;
END LOOP;
ELSE
INSERT INTO arc_energo.topic_msg_log(msg_id, msg_log)
VALUES(arg_msg_id, 'сообщение не найдено');
END IF;
END
$function$
;
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