What is the best way to do this in Postgres

kunwar singh <krishsingh.111@gmail.com>

From: kunwar singh <krishsingh.111@gmail.com>
To: pgsql-sql@lists.postgresql.org
Date: 2024-12-08T11:38:53Z
Lists: pgsql-sql
Hello Listers,
Looking for your inputs on the most efficient way to do it in Postgres.

What I want to do:
===
I want to spawn 10 concurrent sessions each executing a complex stored
procedure with one of the parameters being the product ID.
Example

CALL process_product(curdate, region, productid=>1) ;
CALL process_product(curdate, region, productid=>2) ;
CALL process_product(curdate, region, productid=>3) ;
CALL process_product(curdate, region, productid=>4) ;
...
CALL process_product(curdate, region, productid=>10) ;


Say I get a list of product IDs by running a big query

Product ID
====
1
2
3
4
..
10


Additional Information
===
Everytime number of product ids will change. At a given time there should
be no more than 10 concurrent sessions of process_product.
I want to trigger these procedure calls once every hour. For a given hour
the number of product IDs could range from 10 to 100 in total.
I am using RDS Postgres v 15.

Question
===
I know I can create a bash script or Python script , but I am wondering if
there is a smarter way to do it in Postgres?



-- 
Cheers,
Kunwar