Tower: upload queue_job 16.0.2.12.0 (via marketplace)
This commit is contained in:
33
addons/queue_job/post_init_hook.py
Normal file
33
addons/queue_job/post_init_hook.py
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# Copyright 2020 ACSONE SA/NV
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def post_init_hook(cr, registry):
|
||||||
|
# this is the trigger that sends notifications when jobs change
|
||||||
|
logger.info("Create queue_job_notify trigger")
|
||||||
|
cr.execute(
|
||||||
|
"""
|
||||||
|
DROP TRIGGER IF EXISTS queue_job_notify ON queue_job;
|
||||||
|
CREATE OR REPLACE
|
||||||
|
FUNCTION queue_job_notify() RETURNS trigger AS $$
|
||||||
|
BEGIN
|
||||||
|
IF TG_OP = 'DELETE' THEN
|
||||||
|
IF OLD.state != 'done' THEN
|
||||||
|
PERFORM pg_notify('queue_job', OLD.uuid);
|
||||||
|
END IF;
|
||||||
|
ELSE
|
||||||
|
PERFORM pg_notify('queue_job', NEW.uuid);
|
||||||
|
END IF;
|
||||||
|
RETURN NULL;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
CREATE TRIGGER queue_job_notify
|
||||||
|
AFTER INSERT OR UPDATE OR DELETE
|
||||||
|
ON queue_job
|
||||||
|
FOR EACH ROW EXECUTE PROCEDURE queue_job_notify();
|
||||||
|
"""
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user