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<http://uchc.edu>

On Jul 17, 2019, at 5:57 AM, Dirk Mika 
<dirk.m...@mikatiming.de<mailto:dirk.m...@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
<https://github.com/fluca1978/PostgreSQL-11-Quick-Start-Guide/blob/master/Chapter09/Chapter09_Listing05.sql<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_fluca1978_PostgreSQL-2D11-2DQuick-2DStart-2DGuide_blob_master_Chapter09_Chapter09-5FListing05.sql&d=DwMGaQ&c=EZxp_D7cDnouwj5YEFHgXuSKoUq2zVQZ_7Fw9yfotck&r=f-X3XMK2s9o3QbCr8_n2sYw801ckLPRVRmiIoBpOKHg&m=7PED1sfWud-XLOBS3gbmOFen-nrNCi5WmVCAyeDV5wY&s=wyteTGQGbVOgGvJUo40G2IeljhHNo1ixRp4F6A3sQyU&e=>>
and your listening process will be something like
<https://github.com/fluca1978/PostgreSQL-11-Quick-Start-Guide/blob/master/Chapter09/Chapter09_Listing09.perl<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_fluca1978_PostgreSQL-2D11-2DQuick-2DStart-2DGuide_blob_master_Chapter09_Chapter09-5FListing09.perl&d=DwMGaQ&c=EZxp_D7cDnouwj5YEFHgXuSKoUq2zVQZ_7Fw9yfotck&r=f-X3XMK2s9o3QbCr8_n2sYw801ckLPRVRmiIoBpOKHg&m=7PED1sfWud-XLOBS3gbmOFen-nrNCi5WmVCAyeDV5wY&s=b_NqUS_pRBF_UN20-PJJMb7xJEAfNDXnblDihtNQWpA&e=>>.

Thanks for the examples. I’ll look into them.

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.m...@mikatiming.de<mailto:dirk.m...@mikatiming.de>
www.mikatiming.de<http://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><https://urldefense.proofpoint.com/v2/url?u=https-3A__youtu.be_qfOFXrpSKLQ&d=DwMGaQ&c=EZxp_D7cDnouwj5YEFHgXuSKoUq2zVQZ_7Fw9yfotck&r=f-X3XMK2s9o3QbCr8_n2sYw801ckLPRVRmiIoBpOKHg&m=7PED1sfWud-XLOBS3gbmOFen-nrNCi5WmVCAyeDV5wY&s=U1bLNWLn_W8f97ao7qwbGU19rJAGN34e1rLr4o4_r9Q&e=>


Reply via email to