From b6651d3cafc1b7079db67140bf1e3746e919c73b Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 13 Oct 2023 17:05:11 +0200 Subject: ✨ background task: set a low priority queue for imports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ishtar_common/data_importer.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'ishtar_common/data_importer.py') diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 7bbb0753c..6a58e0409 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -883,6 +883,7 @@ class Importer(object): # force django based post-processing for the item item = cls.objects.get(pk=pk) item._timestamp = self.timestamp + item._queue = "low_priority" item.save() if hasattr(item, "RELATED_POST_PROCESS"): for related_key in item.RELATED_POST_PROCESS: @@ -897,6 +898,7 @@ class Importer(object): try: item = cls.objects.get(pk=pk) item._timestamp = self.timestamp + item._queue = "low_priority" item.save() if hasattr(item, "fix"): # post save/m2m specific fix @@ -1105,6 +1107,7 @@ class Importer(object): def _create_item(self, cls, dct, idx_line): obj = cls(**dct) obj._no_post_save = True # delayed at the end of the import + obj._queue = "low_priority" obj.save() self._add_to_post_save(cls, obj.pk, idx_line) return obj @@ -1219,6 +1222,7 @@ class Importer(object): setattr(obj, k, data["defaults"][k]) obj._no_post_save = True obj._timestamp = self.timestamp + obj._queue = "low_priority" obj.save() self._add_to_post_save(obj.__class__, obj.pk, idx_line) @@ -1258,6 +1262,7 @@ class Importer(object): for k in geodata: setattr(item, k, geodata[k]) item._timestamp = self.timestamp + item._queue = "low_priority" item.save() else: item = GeoVectorData.objects.create(**geodata) @@ -1273,6 +1278,7 @@ class Importer(object): obj._post_saved_geo = True obj._no_move = True obj.skip_history_when_saving = True + obj._queue = "low_priority" obj.save() n = datetime.datetime.now() @@ -1345,6 +1351,7 @@ class Importer(object): setattr(t_obj, k, data["defaults"][k]) t_obj._no_post_save = True t_obj._timestamp = self.timestamp + t_obj._queue = "low_priority" t_obj.save() self._add_to_post_save(t_obj.__class__, t_obj.pk, idx_line) if self.import_instance and hasattr(t_obj, "imports") and created: @@ -1685,6 +1692,7 @@ class Importer(object): setattr(v, k, extra_fields[k]) if changed: v._timestamp = self.timestamp + v._queue = "low_priority" v.save() for att, objs in m2m_m2ms: if type(objs) not in (list, tuple): @@ -2034,6 +2042,7 @@ class Importer(object): for k in updated_dct: setattr(obj, k, updated_dct[k]) obj._timestamp = self.timestamp + obj._queue = "low_priority" obj.save() if ( not self.simulate @@ -2103,6 +2112,7 @@ class Importer(object): v._no_post_save = True try: v._timestamp = self.timestamp + v._queue = "low_priority" v.save() except DatabaseError as e: raise IntegrityError(e.message) -- cgit v1.2.3