Re: How to run a task continuously in the background
Dirk Mika <[email protected]>
| Newsgroups | gmane.comp.db.postgresql.general |
|---|---|
| Message-ID | <[email protected]> |
Creating a background worker that invokes a stored procedure once per second? <https://www.postgresql.org/docs/11/bgworker.html> But this is not so simple to put in place. It's not really important that the job runs once a second, but that it starts immediately when I want it to. If I start a job with pg_cron, it will not be executed until the next full minute at the earliest. Otherwise pg_cron with a function that performs a pg_sleep of one second in a loop. Anyway, it seems to me you are better refactoring your solution: it seems you need to process data when _new data_ comes, not once per second, so it sounds to me like a trigger could solve the problem. The processing of the data via a job is deliberately chosen so as to separate the insertion of the data from their processing. If a trigger were to do this, the transaction in which the data is inserted would take longer. This is not intended. It is common for many records to be inserted in a short time, but processing takes a little time. The application that inserts the data should however not be slowed down. Dirk -- Dirk Mika Software Developer [cid:image001_d0a5cf51-5dd3-4ff5-b428-1016a6d95a0f.png] mika:timing GmbH Strundepark - Kürtener Str. 11b 51465 Bergisch Gladbach Germany fon +49 2202 2401-1197 [email protected] www.mikatiming.de AG Köln HRB 47509 * WEEE-Reg.-Nr. DE 90029884 Geschäftsführer: Harald Mika, Jörg Mika [cid:CCh2U_f27a5ce6-8556-4db1-8aa4-fd610d6e9efe.jpg]<https://youtu.be/qfOFXrpSKLQ>
image001_d0a5cf51-5dd3-4ff5-b428-1016a6d95a0f.png
(image/png, 1.7 KB) - not displayed
CCh2U_f27a5ce6-8556-4db1-8aa4-fd610d6e9efe.jpg
(image/jpeg, 107.2 KB) - not displayed