details: https://code.tryton.org/tryton/commit/6166d6ed42c9
branch: default
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
diffstat:
trytond/trytond/ir/cron.py | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diffs (25 lines):
diff -r b2a710926326 -r 6166d6ed42c9 trytond/trytond/ir/cron.py
--- a/trytond/trytond/ir/cron.py Wed Sep 09 12:25:27 2026 +0200
+++ b/trytond/trytond/ir/cron.py Wed Sep 09 18:55:29 2026 +0200
@@ -10,7 +10,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
@@ -136,7 +136,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()