edu-rdm-integration 1.0.1__py3-none-any.whl → 1.0.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,9 @@ RDM_COLLECT_CHUNK_SIZE = 500
11
11
  # Количество записей моделей обрабатываемых за одну итерацию экспорта
12
12
  RDM_EXPORT_CHUNK_SIZE = 500
13
13
 
14
+ # Количество не экспортированных записей моделей обрабатываемых за одну итерацию обновления поля modified
15
+ RDM_UPDATE_NON_EXPORTED_CHUNK_SIZE = 5_000
16
+
14
17
 
15
18
  # Загрузка данных в Региональную витрину данных (РВД)
16
19
  # Адрес витрины (schema://host:port)
@@ -50,6 +50,9 @@ from educommon.async_task.models import (
50
50
  from educommon.utils.date import (
51
51
  get_today_max_datetime,
52
52
  )
53
+ from educommon.utils.seqtools import (
54
+ make_chunks,
55
+ )
53
56
  from function_tools.managers import (
54
57
  RunnerManager,
55
58
  )
@@ -339,9 +342,16 @@ class BaseExportLatestEntitiesData(BaseExportEntitiesData):
339
342
  ),
340
343
  )
341
344
 
342
- with atomic():
343
- for queryset in querysets_to_update:
344
- queryset.update(modified=now)
345
+ for queryset in querysets_to_update:
346
+ not_exported_model_ids = queryset.values_list('id', flat=True)
347
+
348
+ with atomic():
349
+
350
+ for model_ids in make_chunks(
351
+ iterable=not_exported_model_ids,
352
+ size=settings.RDM_UPDATE_NON_EXPORTED_CHUNK_SIZE,
353
+ ):
354
+ queryset.filter(id__in=model_ids).update(modified=now)
345
355
 
346
356
  def _calculate_last_finished_entity_export(self) -> Dict[str, datetime]:
347
357
  """Находит левую границу экспорта данных для сущностей."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edu-rdm-integration
3
- Version: 1.0.1
3
+ Version: 1.0.2
4
4
  Summary: Интеграция с Региональной витриной данных
5
5
  Home-page:
6
6
  Download-URL:
@@ -138,6 +138,9 @@ Requires-Dist: uploader-client <1,>=0.2.1
138
138
 
139
139
  # Количество записей моделей обрабатываемых за одну итерацию экспорта данных
140
140
  RDM_EXPORT_CHUNK_SIZE = conf.get_int('rdm_general', 'EXPORT_CHUNK_SIZE')
141
+
142
+ # Количество не экспортированных записей моделей обрабатываемых за одну итерацию обновления поля modified
143
+ RDM_UPDATE_NON_EXPORTED_CHUNK_SIZE = conf.get_int('rdm_general', 'UPDATE_NON_EXPORTED_CHUNK_SIZE')
141
144
 
142
145
  # Настройка запуска периодической задачи выгрузки данных:
143
146
  RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE')
@@ -181,6 +184,7 @@ Requires-Dist: uploader-client <1,>=0.2.1
181
184
  | UPLOADS | Основная директория в MEDIA, в которой будет создана директория edu_rdm_integration для сохранения файлов для дальнейшей выгрузки | 500 |
182
185
  | RDM_COLLECT_CHUNK_SIZE | Количество записей моделей обрабатываемых за одну итерацию сбора данных | 500 |
183
186
  | RDM_EXPORT_CHUNK_SIZE | Количество записей моделей обрабатываемых за одну итерацию экспорта | 500 |
187
+ | RDM_UPDATE_NON_EXPORTED_CHUNK_SIZE | # Количество не экспортированных записей моделей обрабатываемых за одну итерацию обновления поля modified | 5000 |
184
188
  | RDM_UPLOADER_CLIENT_URL | Адрес витрины (schema://host:port) | 'http://localhost:8090' |
185
189
  | RDM_UPLOADER_CLIENT_DATAMART_NAME | Мнемоника Витрины | 'test' |
186
190
  | RDM_UPLOADER_CLIENT_REQUEST_RETRIES | Количество повторных попыток запроса | 10 |
@@ -209,6 +213,8 @@ Requires-Dist: uploader-client <1,>=0.2.1
209
213
  EXPORT_CHUNK_SIZE = 500
210
214
  # Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных
211
215
  COLLECT_CHUNK_SIZE = 500
216
+ # Количество не экспортированных записей моделей обрабатываемых за одну итерацию обновления поля modified
217
+ UPDATE_NON_EXPORTED_CHUNK_SIZE = 5_000
212
218
 
213
219
  # Настройка запуска периодической задачи выгрузки данных
214
220
  [rdm_transfer_task]
@@ -289,6 +295,18 @@ Requires-Dist: uploader-client <1,>=0.2.1
289
295
  ### Удалено
290
296
 
291
297
 
298
+ ## [1.0.2] - 2024-03-06
299
+
300
+ Добавлено разбиение на чанки запроса на обновление поля modified у невыгруженных записей,
301
+ при запуске команды `export_latest_entities_data`.
302
+
303
+ ### Исправлено
304
+
305
+ - [EDUSCHL-21572](https://jira.bars.group/browse/EDUSCHL-21572)
306
+ PATCH Добавлено разбиение на чанки запроса на обновление в методе `_update_model_modified_field`
307
+ класса `BaseExportLatestEntitiesData`.
308
+
309
+
292
310
  ## [1.0.1] - 2024-02-20
293
311
 
294
312
  Исправлено ограничение сбора логов периодом `RDM_TRANSFER_TASK_TIMEDELTA` в `BaseCollectLatestModelsData`
@@ -1,6 +1,6 @@
1
1
  edu_rdm_integration/__init__.py,sha256=fVCvQ7QGI_iCyAeE8dMapyY8gOM617ye5GQqAVGPlZI,72
2
2
  edu_rdm_integration/app_meta.py,sha256=v5IU69yaeLbyHF0Ln6iPN_IfizbtF3rCWrz2n71m8dU,337
3
- edu_rdm_integration/app_settings.py,sha256=kideEO9SvYU8RXPB-8hTVosL4bAspPHNHtyz-R0F7v4,1822
3
+ edu_rdm_integration/app_settings.py,sha256=PK-hjkGIwbSqgKdJKoTdryk6nt-OOGLIKSzPYXCzmYE,2056
4
4
  edu_rdm_integration/apps.py,sha256=5OgNdmuqe26fbu4wYb69haQJe-XFO_rDbnU1vPqJU-U,3571
5
5
  edu_rdm_integration/base.py,sha256=_G0qPTAXe6bXfgDHNiZMSsYt3sMuUhLKnHuQCWSFttU,1341
6
6
  edu_rdm_integration/consts.py,sha256=FFwcMHNsfjP_s9LfkccLAHjJMEMp7ppPmrRlJcgV88k,1104
@@ -79,7 +79,7 @@ edu_rdm_integration/enum_register/mixins.py,sha256=shLb8-9ySoY9kK1Wzb46I9wRKglQI
79
79
  edu_rdm_integration/enum_register/register.py,sha256=5OWOjK-M0Erd_5CENpBaXhVtfL0pEaDl3Bev5QKNDJc,2218
80
80
  edu_rdm_integration/export_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
81
  edu_rdm_integration/export_data/consts.py,sha256=Z6Uho8oViMc0t1tyQFZfrPFBwPx6KnhUf_iZ0qgob8o,16
82
- edu_rdm_integration/export_data/export.py,sha256=Axij_T66EX7I_VjLeVaELuKharDNAVAWDsFlZpqf9EY,16879
82
+ edu_rdm_integration/export_data/export.py,sha256=m1C2gmpQb_Dlr9qtYplHSTJOtU-Ll1d9S5tzPGp73os,17231
83
83
  edu_rdm_integration/export_data/generators.py,sha256=yLDOcHB1PoilJwXtKGxZQhDjpeKBzEWoosahbJJ4Ba4,4020
84
84
  edu_rdm_integration/export_data/helpers.py,sha256=hU346RmQ17Ra2etFvxXI7JQlLyp_0KxH1jm-eeCqejc,2933
85
85
  edu_rdm_integration/export_data/strategies.py,sha256=ocHskG-x54U-ESX56OlZPgOibkGkuv7VKmK7hVmqj_0,6725
@@ -156,9 +156,9 @@ edu_rdm_integration/uploader_log/apps.py,sha256=tYJj4-sDlq8fLOSvw18L_yys7SILpTKW
156
156
  edu_rdm_integration/uploader_log/enums.py,sha256=rgSO3BL2rh2xpfm0Pt4waQW8fB1VMJLdsGmr3SXwH_U,266
157
157
  edu_rdm_integration/uploader_log/managers.py,sha256=y5wTSMzF9hpOpIU_A7nIafL_LBU3QEie6LAYWoB-pBQ,3203
158
158
  edu_rdm_integration/uploader_log/ui.py,sha256=YM9Buqp2wxE95Wf5gvAATBzuYzDOossK1sEmvFk07cI,2110
159
- edu_rdm_integration-1.0.1.dist-info/LICENSE,sha256=uw43Gjjj-1vXWCItfSrNDpbejnOwZMrNerUh8oWbq8Q,3458
160
- edu_rdm_integration-1.0.1.dist-info/METADATA,sha256=VWtIRppCl6cTqP2UU8jhjkdmN4zPBX3KxL8pmQbBfWk,53826
161
- edu_rdm_integration-1.0.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
162
- edu_rdm_integration-1.0.1.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
163
- edu_rdm_integration-1.0.1.dist-info/top_level.txt,sha256=nRJV0O14UtNE-jGIYG03sohgFnZClvf57H5m6VBXe9Y,20
164
- edu_rdm_integration-1.0.1.dist-info/RECORD,,
159
+ edu_rdm_integration-1.0.2.dist-info/LICENSE,sha256=uw43Gjjj-1vXWCItfSrNDpbejnOwZMrNerUh8oWbq8Q,3458
160
+ edu_rdm_integration-1.0.2.dist-info/METADATA,sha256=tND-Xftw5QICLhRSKrGcEZoZ3JV3sEfU50Rk5ebK9O0,55202
161
+ edu_rdm_integration-1.0.2.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
162
+ edu_rdm_integration-1.0.2.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
163
+ edu_rdm_integration-1.0.2.dist-info/top_level.txt,sha256=nRJV0O14UtNE-jGIYG03sohgFnZClvf57H5m6VBXe9Y,20
164
+ edu_rdm_integration-1.0.2.dist-info/RECORD,,