details: https://code.tryton.org/tryton/commit/dfca86e7ef16
branch: 7.8
user: Cédric Krier <[email protected]>
date: Wed Sep 09 18:55:29 2026 +0200
description:
Execute the lock_id when computing the running values of cron
Closes #15078
(grafted from 6166d6ed42c968ad1abbb6f21af7ca2cfc1fef0d)
diffstat:
trytond/trytond/ir/cron.py | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diffs (25 lines):
diff -r e1271d4b8f6c -r dfca86e7ef16 trytond/trytond/ir/cron.py
--- a/trytond/trytond/ir/cron.py Thu Sep 24 09:27:50 2026 +0200
+++ b/trytond/trytond/ir/cron.py Wed Sep 09 18:55:29 2026 +0200
@@ -9,7 +9,7 @@
from itertools import groupby
from dateutil.relativedelta import relativedelta
-from sql import Literal
+from sql import Literal, Select
from sql.conditionals import Case, Coalesce
from sql.functions import CurrentTimestamp, Extract
@@ -133,7 +133,11 @@
running = defaultdict(bool)
if database.has_select_for():
# Avoid concurrent locking read
- database.lock_id(str2bigint(f'{cls.__name__},running'))
+ cursor = transaction.connection.cursor()
+ cursor.execute(*Select([
+ database.lock_id(
+ str2bigint(f'{cls.__name__},running'),
+ True)]))
with transaction.new_transaction() as transaction:
cursor = transaction.connection.cursor()
For = database.get_select_for_skip_locked()