edu-rdm-integration 3.4.0__py3-none-any.whl → 3.4.3__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.
@@ -48,3 +48,9 @@ RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS = 60 * 60 * 2
48
48
  RDM_UPLOAD_QUEUE_MAX_SIZE = 500_000_000
49
49
  # Таймаут для сохранения параметров в общем кеш
50
50
  RDM_REDIS_CACHE_TIMEOUT_SECONDS = 60 * 60 * 2
51
+
52
+ # Настройка запуска периодической задачи отправки csv-файлов в витрину:
53
+ RDM_UPLOAD_DATA_TASK_MINUTE = '0'
54
+ RDM_UPLOAD_DATA_TASK_HOUR = '*/2'
55
+ RDM_UPLOAD_DATA_TASK_DAY_OF_WEEK = '*'
56
+ RDM_UPLOAD_DATA_TASK_LOCK_EXPIRE_SECONDS = 60 * 60 * 2
@@ -7,33 +7,42 @@ from django.db import (
7
7
  from edu_rdm_integration.enums import (
8
8
  FileUploadStatusEnum,
9
9
  )
10
+ from educommon.utils.seqtools import (
11
+ make_chunks,
12
+ )
10
13
 
11
14
 
12
15
  # Значение размера файла по умолчанию (если файл не найден)
13
16
  ATTACHMENT_SIZES = 10_485_760
17
+ CHUNK_SIZE = 500
14
18
 
15
19
 
16
20
  def set_attachment_size(apps, schema_editor):
17
21
  """Установка размера файла по умолчанию."""
18
- ExportingDataSubStageAttachment = apps.get_model('edu_rdm_integration', 'ExportingDataSubStageAttachment') # noqa: N806
19
- ExportingDataSubStageUploaderClientLog = apps.get_model('edu_rdm_integration', 'ExportingDataSubStageUploaderClientLog') # noqa: N806
22
+ ExportingDataSubStageAttachment = apps.get_model(
23
+ 'edu_rdm_integration', 'ExportingDataSubStageAttachment'
24
+ ) # noqa: N806
25
+ ExportingDataSubStageUploaderClientLog = apps.get_model(
26
+ 'edu_rdm_integration', 'ExportingDataSubStageUploaderClientLog'
27
+ ) # noqa: N806
20
28
 
21
29
  attachment_ids = ExportingDataSubStageUploaderClientLog.objects.filter(
22
30
  file_upload_status=FileUploadStatusEnum.IN_PROGRESS
23
- ).values_list('attachment_id', flat=True)
31
+ ).values_list('attachment_id', flat=True).iterator()
24
32
 
25
33
  sub_stage_with_deleted_attachments = []
26
- for sub_stage_attachment in ExportingDataSubStageAttachment.objects.filter(
27
- attachment_size__isnull=True,
28
- id__in=attachment_ids
29
- ):
30
- if sub_stage_attachment.attachment.field.storage.exists(sub_stage_attachment.attachment.name):
31
- sub_stage_attachment.attachment_size = sub_stage_attachment.attachment.size
32
- else:
33
- sub_stage_attachment.attachment_size = ATTACHMENT_SIZES
34
- sub_stage_with_deleted_attachments.append(sub_stage_attachment)
35
-
36
- ExportingDataSubStageAttachment.objects.bulk_update(sub_stage_with_deleted_attachments, ['attachment_size'])
34
+ for chunked_attachment_ids in make_chunks(attachment_ids, CHUNK_SIZE):
35
+ for sub_stage_attachment in ExportingDataSubStageAttachment.objects.filter(
36
+ attachment_size__isnull=True,
37
+ id__in=chunked_attachment_ids,
38
+ ):
39
+ if sub_stage_attachment.attachment.field.storage.exists(sub_stage_attachment.attachment.name):
40
+ sub_stage_attachment.attachment_size = sub_stage_attachment.attachment.size
41
+ else:
42
+ sub_stage_attachment.attachment_size = ATTACHMENT_SIZES
43
+ sub_stage_with_deleted_attachments.append(sub_stage_attachment)
44
+
45
+ ExportingDataSubStageAttachment.objects.bulk_update(sub_stage_with_deleted_attachments, ['attachment_size'])
37
46
 
38
47
 
39
48
  class Migration(migrations.Migration):
@@ -344,18 +344,18 @@ class TransferLatestEntitiesDataPeriodicTask(UniquePeriodicAsyncTask):
344
344
  )
345
345
 
346
346
 
347
- class UploadDataAsyncTask(PeriodicAsyncTask):
347
+ class UploadDataAsyncTask(UniquePeriodicAsyncTask):
348
348
  """Формирование очереди файлов и их отправка."""
349
349
 
350
350
  queue = TASK_QUEUE_NAME
351
351
  routing_key = TASK_QUEUE_NAME
352
352
  description = 'Отправка данных в витрину "Региональная витрина данных"'
353
- lock_expire_seconds = settings.RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS
353
+ lock_expire_seconds = settings.RDM_UPLOAD_DATA_TASK_LOCK_EXPIRE_SECONDS
354
354
  task_type = AsyncTaskType.SYSTEM
355
355
  run_every = crontab(
356
- minute=settings.RDM_UPLOAD_STATUS_TASK_MINUTE,
357
- hour=settings.RDM_UPLOAD_STATUS_TASK_HOUR,
358
- day_of_week=settings.RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK,
356
+ minute=settings.RDM_UPLOAD_DATA_TASK_MINUTE,
357
+ hour=settings.RDM_UPLOAD_DATA_TASK_HOUR,
358
+ day_of_week=settings.RDM_UPLOAD_DATA_TASK_DAY_OF_WEEK,
359
359
  )
360
360
 
361
361
  def process(self, *args, **kwargs):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edu-rdm-integration
3
- Version: 3.4.0
3
+ Version: 3.4.3
4
4
  Summary: Интеграция с Региональной витриной данных
5
5
  Home-page:
6
6
  Download-URL:
@@ -302,6 +302,31 @@ Requires-Dist: uploader-client <1,>=0.2.1
302
302
  ### Удалено
303
303
 
304
304
 
305
+ ## 3.4.3 - 2024-10-17
306
+ Исправлена миграция простановки размеров файлов выгрузки в модель ExportingDataSubStageAttachment
307
+
308
+
309
+ ## Исправлено
310
+ - [EDUSCHL-22651](https://jira.bars.group/browse/EDUSCHL-22651)
311
+ Исправлена миграция простановки размеров файлов выгрузки в модель ExportingDataSubStageAttachment
312
+
313
+
314
+ ## 3.4.2 - 2024-10-15
315
+ Добавлены отдельные параметры по управлению временем запуска UploadDataAsyncTask
316
+
317
+ ## Добавлено
318
+ - [EDUSCHL-22166](https://jira.bars.group/browse/EDUSCHL-22166)
319
+ Добавлены отдельные параметры по управлению временем запуска UploadDataAsyncTask
320
+
321
+
322
+ ## 3.4.1 - 2024-09-26
323
+ Добавлена документация по сбору/выгрузке сущностей для ЭДС, ЭК
324
+
325
+ ## Добавлено
326
+ - [EDUKNDG-14518](https://jira.bars.group/browse/EDUKNDG-14518)
327
+ Добавлена документация по сбору/выгрузке сущностей для ЭДС, ЭК
328
+
329
+
305
330
  ## 3.4.0 - 2024-09-25
306
331
  В базовый класс тестирования функций сбора добавлена поддержка формата PhoneNumber для формирования
307
332
  экземпляра модели AuditLog.
@@ -317,6 +342,12 @@ Requires-Dist: uploader-client <1,>=0.2.1
317
342
  PATCH Вынесены утилиты и базовый класс для логирования и сбора по модели в рамках сущности
318
343
 
319
344
 
345
+ ## 3.3.8 - 2024-10-14
346
+ Задача UploadDataAsyncTask изменена с PeriodicAsyncTask на UploadDataAsyncTask
347
+ - [EDUSCHL-22519]https://jira.bars.group/browse/EDUSCHL-22519
348
+ PATCH Задача UploadDataAsyncTask изменена с PeriodicAsyncTask на UploadDataAsyncTask
349
+
350
+
320
351
  ## 3.3.7 - 2024-09-06
321
352
  Добавлены команда (UploadEntitiesData) и модель (UploadDataCommand) для логирования и запуска выгрузки данных в витрину
322
353
  - [EDUSCHL-22042](https://jira.bars.group/browse/EDUSCHL-22042)
@@ -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=bR8zGz2fJPSia5LO4KDUENIlxdqHmKkTAg92-q0qhew,2398
3
+ edu_rdm_integration/app_settings.py,sha256=iqoGMJXFvINd4YwDfXCKjZEsGJCCNxpIRWfvwLrvpPA,2689
4
4
  edu_rdm_integration/apps.py,sha256=BoXiTr8B04ZtDxHNXc1Jy2xzRoaq8CMBQ9cfmBK73j4,3571
5
5
  edu_rdm_integration/base.py,sha256=_G0qPTAXe6bXfgDHNiZMSsYt3sMuUhLKnHuQCWSFttU,1341
6
6
  edu_rdm_integration/consts.py,sha256=Qt52SOCQ-3wOet-_6inJih_W9nToORKXbkxb3jVSjEo,1079
@@ -12,7 +12,7 @@ edu_rdm_integration/models.py,sha256=YP_vot6PbQ3jWv3NNW1wa0gScjOsT2lgdrj7z5V6NHw
12
12
  edu_rdm_integration/redis_cache.py,sha256=GZhtM1d0cVr5TEqxh15K7dS371Msit6wRemIiYb2rzk,1548
13
13
  edu_rdm_integration/signals.py,sha256=3eRlpkDcFCF6TN80-QM8yBYLcyozzcmoPjz6r4_ApWg,73
14
14
  edu_rdm_integration/storages.py,sha256=o5WqUG7SnkeuMt-z8spUi-IraivST-7KHzfY-M3v7FA,6807
15
- edu_rdm_integration/tasks.py,sha256=QAOytSCEoWtFWJqmTkj3N6NRl_Hds9EXyRfngFHrbPk,16046
15
+ edu_rdm_integration/tasks.py,sha256=9LzUCuCmSR2dDi35SI2VeOdxTpKf33SkFCffov3WO7Y,16044
16
16
  edu_rdm_integration/typing.py,sha256=6GOZfRDqOjN-o5NR86-f2o4uXQm_8AUCRRdQTITtrcs,785
17
17
  edu_rdm_integration/utils.py,sha256=QMiohtOaId3Zab91IZPazGzhce5pa5e-ilRgXpISkHk,12249
18
18
  edu_rdm_integration/adapters/__init__.py,sha256=cU0swn4Ny5ZQz5buWRcWsT1mpWuUFJaUlHf2l7TtEBo,83
@@ -162,7 +162,7 @@ edu_rdm_integration/migrations/0009_auto_20240522_1619.py,sha256=hz8cBq6m18XK5Pb
162
162
  edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py,sha256=LJH7QY_1GLWSHLRPB--9PPypPiQd4pAT2-oIOEF84DY,507
163
163
  edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py,sha256=2BfIif_hkFv1h6VEfe0Ys4J_uk6LR9YtO711ocDYPso,1263
164
164
  edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py,sha256=y_JQO69k9pEfrJyimaRiAOBmhaJmssIyepCGd-Sy9hs,511
165
- edu_rdm_integration/migrations/0013_set_attachment_size.py,sha256=Pj_n-ytsC0lhyU67qvH8UHHQ-c-TH5MZFfy-UF6y6M4,1809
165
+ edu_rdm_integration/migrations/0013_set_attachment_size.py,sha256=8-AJpnIViGUh9Q2aMegUPqyw-fthcL-7Ppbm7IvlRms,2047
166
166
  edu_rdm_integration/migrations/0014_uploaddatacommand.py,sha256=Hh0vKKiGgKOvY1kBAcmway4dSYUXwVArHAc9YrsjCIU,2079
167
167
  edu_rdm_integration/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
168
  edu_rdm_integration/registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -176,9 +176,9 @@ edu_rdm_integration/uploader_log/enums.py,sha256=rgSO3BL2rh2xpfm0Pt4waQW8fB1VMJL
176
176
  edu_rdm_integration/uploader_log/managers.py,sha256=y5wTSMzF9hpOpIU_A7nIafL_LBU3QEie6LAYWoB-pBQ,3203
177
177
  edu_rdm_integration/uploader_log/ui.py,sha256=YM9Buqp2wxE95Wf5gvAATBzuYzDOossK1sEmvFk07cI,2110
178
178
  edu_rdm_integration/uploader_log/templates/ui-js/object-grid-buttons.js,sha256=2xyGe0wdVokM0RhpzRzcRvJPBkBmPe3SlZry4oP4Nzs,6201
179
- edu_rdm_integration-3.4.0.dist-info/LICENSE,sha256=uw43Gjjj-1vXWCItfSrNDpbejnOwZMrNerUh8oWbq8Q,3458
180
- edu_rdm_integration-3.4.0.dist-info/METADATA,sha256=yyTvi9MApMnWTUi9cv5G3MRQ8CKcEb48KFVSvcGQXzk,73632
181
- edu_rdm_integration-3.4.0.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
182
- edu_rdm_integration-3.4.0.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
183
- edu_rdm_integration-3.4.0.dist-info/top_level.txt,sha256=nRJV0O14UtNE-jGIYG03sohgFnZClvf57H5m6VBXe9Y,20
184
- edu_rdm_integration-3.4.0.dist-info/RECORD,,
179
+ edu_rdm_integration-3.4.3.dist-info/LICENSE,sha256=uw43Gjjj-1vXWCItfSrNDpbejnOwZMrNerUh8oWbq8Q,3458
180
+ edu_rdm_integration-3.4.3.dist-info/METADATA,sha256=KrZldin3ISdx9GGgOgSj6D9nsJ8HkBkEAMrKTAQJPxc,75074
181
+ edu_rdm_integration-3.4.3.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
182
+ edu_rdm_integration-3.4.3.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
183
+ edu_rdm_integration-3.4.3.dist-info/top_level.txt,sha256=nRJV0O14UtNE-jGIYG03sohgFnZClvf57H5m6VBXe9Y,20
184
+ edu_rdm_integration-3.4.3.dist-info/RECORD,,