diff --git a/ecs/jskult-batch/src/aws/s3.py b/ecs/jskult-batch/src/aws/s3.py index c5868f68..c44e61b0 100644 --- a/ecs/jskult-batch/src/aws/s3.py +++ b/ecs/jskult-batch/src/aws/s3.py @@ -2,6 +2,7 @@ import os.path as path import tempfile import boto3 + from src.system_var import environment @@ -63,10 +64,10 @@ class ConfigBucket(S3Bucket): jsk_archive_run_day_list_key = f'{environment.JSKULT_CONFIG_CALENDAR_FOLDER}/{environment.JSKULT_CONFIG_CALENDAR_RUN_ARCHIVE_DAY_FILE_NAME}' with open(temporary_file_path, mode='wb') as f: self._s3_client.download_file( - self._bucket_name, jsk_archive_run_day_list_key, f) + self._bucket_name, jsk_archive_run_day_list_key, f) f.seek(0) return temporary_file_path - + def download_jsk_expected_data_list(self): temporary_dir = tempfile.mkdtemp() temporary_file_path = path.join( @@ -79,7 +80,6 @@ class ConfigBucket(S3Bucket): return temporary_file_path - class JskUltBackupBucket(S3Bucket): _bucket_name = environment.JSKULT_BACKUP_BUCKET @@ -122,4 +122,4 @@ class JskSendBucket(S3Bucket): dat_key = f'{self._send_folder}/{dat_file_key}' backup_key = f'{jskult_backup_bucket._folder}/{datetime_key}/{dat_file_key.replace(f"{self._send_folder}/", "")}' self._s3_client.copy(self._bucket_name, dat_key, - jskult_backup_bucket._bucket_name, backup_key) \ No newline at end of file + jskult_backup_bucket._bucket_name, backup_key) diff --git a/ecs/jskult-batch/src/batch/update_business_day.py b/ecs/jskult-batch/src/batch/update_business_day.py index 963c17f4..a1d1630b 100644 --- a/ecs/jskult-batch/src/batch/update_business_day.py +++ b/ecs/jskult-batch/src/batch/update_business_day.py @@ -1,4 +1,5 @@ import json +import re from datetime import datetime import boto3 @@ -64,14 +65,15 @@ class UpdateBusinessDay(JskultBatchEntrypoint): return try: - if not jskult_batch_status_manager.can_run_post_process(): - # 後続処理の起動条件を満たしていない場合 + if not jskult_batch_status_manager.can_run_business_day_update(): + # 日付更新処理の起動条件を満たしていない場合 # 処理ステータスを「処理待」に設定 jskult_batch_status_manager.set_process_status( constants.PROCESS_STATUS_WAITING) # バッチ実行管理テーブルに「retry」で登録 jskult_batch_run_manager.batch_retry() + logger.info('起動条件を満たしていないため、日付テーブル更新処理を終了します。') return @@ -82,6 +84,9 @@ class UpdateBusinessDay(JskultBatchEntrypoint): jskult_batch_status_manager.set_process_status( constants.PROCESS_STATUS_ERROR) return + + jskult_batch_status_manager.set_process_status( + constants.PROCESS_STATUS_DOING) try: # 日付テーブルの処理年月日を取得する _, _, syor_date = jskult_hdke_tbl_manager.get_batch_statuses() @@ -184,15 +189,14 @@ class UpdateBusinessDay(JskultBatchEntrypoint): """jsk_transfer_data_listと比較し、結果不足ファイルがあった場合ログ出力 """ missing_files = [ - jsk_transfer_expected_data - for jsk_transfer_expected_data in jsk_transfer_expected_data_list + expected + for expected in jsk_transfer_expected_data_list if not any( - jsk_transfer_data.startswith( - jsk_transfer_expected_data) + re.match(f"{re.escape(expected)}_\\d{{14}}", jsk_transfer_data) for jsk_transfer_data in jsk_transfer_data_list ) ] - if missing_files != 0: + if len(missing_files) != 0: logger.info( f'I-5 [NOTICE]日次連携受領ファイルに不足がありました。ファイル名:{missing_files}') @@ -203,9 +207,9 @@ class UpdateBusinessDay(JskultBatchEntrypoint): jsk_transfer_data for jsk_transfer_data in jsk_transfer_data_list if not any( - jsk_transfer_data.startswith( - jsk_transfer_expected_data) - for jsk_transfer_expected_data in jsk_transfer_expected_data_list + re.match(f"{re.escape(expected)}_\\d{{14}}", + jsk_transfer_data) + for expected in jsk_transfer_expected_data_list ) ] if len(unexpected_data) != 0: diff --git a/ecs/jskult-batch/src/system_var/environment.py b/ecs/jskult-batch/src/system_var/environment.py index fbb334f3..4dacb4e5 100644 --- a/ecs/jskult-batch/src/system_var/environment.py +++ b/ecs/jskult-batch/src/system_var/environment.py @@ -34,6 +34,7 @@ JSKULT_CONFIG_EXPECTED_DATA_LIST_FILE_NAME = os.environ.get( ) JSK_IO_BUCKET = os.environ.get('JSK_IO_BUCKET', None) JSK_DATA_SEND_FOLDER = os.environ.get('JSK_DATA_SEND_FOLDER', None) +JSK_BACKUP_FOLDER = os.environ.get('JSK_BACKUP_FOLDER', None) # 初期値がある環境変数 diff --git a/s3/config/jskult/task_settings/update_business_day_task_settings.env b/s3/config/jskult/task_settings/update_business_day_task_settings.env index b5217d60..f8728fff 100644 --- a/s3/config/jskult/task_settings/update_business_day_task_settings.env +++ b/s3/config/jskult/task_settings/update_business_day_task_settings.env @@ -1,6 +1,8 @@ # task environment file. LOG_LEVEL=INFO PROCESS_NAME=jskult-batch-update-business-day +TRANSFER_RESULT_FOLDER=transfer_result +TRANSFER_RESULT_FILE_NAME=transfer_result.json JSKULT_CONFIG_CALENDAR_FOLDER=jskult/calendar JSKULT_CONFIG_CALENDAR_RUN_ARCHIVE_DAY_FILE_NAME=jsk_archive_run_day.txt JSKULT_CONFIG_EXPECTED_DATA_LIST_FOLDER=jskult/expected_data_list