Re: How to run a task continuously in the background - Mailing list pgsql-general

From Weatherby,Gerard
Subject Re: How to run a task continuously in the background
Date
Msg-id 04008F3C-CFA3-44D4-8A20-A5390A131AC9@uchc.edu
Whole thread Raw
In response to Re: How to run a task continuously in the background  (Dirk Mika <Dirk.Mika@mikatiming.de>)
List pgsql-general
We used a python process running continually on a linux client for the LISTEN piece.

Reading the documentation, it seems that a background worker ( https://www.postgresql.org/docs/11/bgworker.html) might be a solution to your requirements. I don’t have personal experience with them.
-- 
Gerard Weatherby | Application Architect
NMRbox | Department of Molecular Biology and Biophysics | UConn Health
263 Farmington Avenue, Farmington, CT 06030-6406
Phone: 860 679 8484
uchc.edu 

On Jul 17, 2019, at 5:57 AM, Dirk Mika <Dirk.Mika@mikatiming.de> wrote:

You will have a trigger that, once new tuples are created (or older
update and so on) issues a NOTIFY.
Somewhere (within PostgreSQL or outside it) there will be a process
that issued a LISTEN and is locked until a notify comes in. Then it
does process whatever you need to do.
As an example your trigger function will be something like
and your listening process will be something like
 
This makes your processing fully asynchronous, and with some tune
allows you to decide the start/stop/resume policy as you need/wish.
 
Besides, it is quite hard for me to get to the point where you need to
check for new data every second, and therefore why you are not
satisfied with pg_cron or stuff like that.
 
pg_cron doesn’t start the task instantly and queues subsequent runs, if the task is still running. I just need to start the task once and it should keep running until stopped / killed.
 
Maybe I'll have to rephrase it.
Suppose I have a procedure and want to start it without the client where I start the procedure waiting for it to finish. And I want the procedure to continue even if the client that started it quits.
And I want to be able to check if the procedure is still running.
 
Dirk
 
-- 
Dirk Mika
Software Developer

<image001_d0a5cf51-5dd3-4ff5-b428-1016a6d95a0f.png>

mika:timing GmbH
Strundepark - Kürtener Str. 11b
51465 Bergisch Gladbach
Germany

fon +49 2202 2401-1197 
dirk.mika@mikatiming.de
www.mikatiming.de

AG Köln HRB 47509 * WEEE-Reg.-Nr. DE 90029884 
Geschäftsführer: Harald Mika, Jörg Mika

<CCh2U_f27a5ce6-8556-4db1-8aa4-fd610d6e9efe.jpg>


pgsql-general by date:

Previous
From: Nicola Contu
Date:
Subject: Re: Matview size - space increased on concurrently refresh
Next
From: Luca Ferrari
Date:
Subject: Re: Issue related with patitioned table:How can I quickly determinewhich child table my record is in,given a specific primary key value?