From d50c99e3eed68df73bf2eaa10ad4013e0321aea8 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Wed, 13 Sep 2023 15:03:18 +0700 Subject: Add max execution time on process solr queue --- indoteknik_custom/models/solr/apache_solr_queue.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/indoteknik_custom/models/solr/apache_solr_queue.py b/indoteknik_custom/models/solr/apache_solr_queue.py index eb5a99a8..6a5b480f 100644 --- a/indoteknik_custom/models/solr/apache_solr_queue.py +++ b/indoteknik_custom/models/solr/apache_solr_queue.py @@ -1,6 +1,6 @@ from odoo import models, fields from datetime import datetime -import logging +import logging, time _logger = logging.getLogger(__name__) @@ -29,9 +29,14 @@ class ApacheSolrQueue(models.Model): except: rec.display_name = '' - def process_queue_item(self, limit=100): + def process_queue_item(self, limit=100, max_exec_time=30): records = self.search([('execute_status', '=', False)], order='create_date asc', limit=limit) + start_time = time.time() for rec in records: + end_time = time.time() + elapsed_time = end_time - start_time + if elapsed_time > max_exec_time: + break rec.execute_queue() def execute_queue(self): -- cgit v1.2.3