Odoo get running crons (ir.cron)
with active_cron_info as (
select substring(query from 'id in \((\d+)\)')::int as cron_id,
query,
pid as pid,
usename as username,
application_name as app_name,
client_addr as client_addr,
state as state,
now() at time zone 'utc' - state_change at time zone 'utc' as time
from pg_catalog.pg_stat_activity
where query ilike '%ir_cron%FOR NO KEY UPDATE SKIP LOCKED%'
)
select
cron.id,
cron.cron_name,
cron_info.time,
cron_info.username,
cron_info.app_name,
cron_info.client_addr,
cron_info.state,
cron_info.pid
from ir_cron as cron
inner join active_cron_info as cron_info
on cron_info.cron_id = cron.id;