CREATE OR REPLACE FUNCTION {SCHEMA_NAME}._wakeup_runners() RETURNS TRIGGER AS $$

BEGIN
  NOTIFY {CHANNEL};
  RETURN NEW;
END;

$$ LANGUAGE plpgsql;

BEGIN;

DROP TRIGGER IF EXISTS _wakeup_runners ON {SCHEMA_NAME}.postjobs;

CREATE TRIGGER _wakeup_runners AFTER INSERT OR UPDATE
  ON {SCHEMA_NAME}.postjobs
  FOR EACH STATEMENT
  EXECUTE PROCEDURE {SCHEMA_NAME}._wakeup_runners();

COMMIT;

DROP FUNCTION IF EXISTS {SCHEMA_NAME}._wakeup_parent_job(job_id BIGINT); – removed in 0.5.0 CREATE OR REPLACE FUNCTION {SCHEMA_NAME}._wakeup_parent_job(worker_session_id UUID, job_id BIGINT) RETURNS VOID AS $$ BEGIN

UPDATE {SCHEMA_NAME}.postjobs
SET
  last_worker_session_id=worker_session_id,
  status='ready',
  next_run_at=(now() at time zone 'utc'),
  updated_at=(now() at time zone 'utc')
WHERE
  status='sleep'
  AND id=(SELECT parent_id FROM {SCHEMA_NAME}.postjobs WHERE id=job_id);

END; $$ LANGUAGE plpgsql;