From 32e0b940d162159e127355a0bdf9f07cc485ad3c Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Tue, 20 May 2025 15:35:58 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=92=B0=E5=A2=83=E5=A4=89=E6=95=B0?= =?UTF-8?q?=E7=B7=A8=E9=9B=86=E3=80=82=E5=A4=96=E5=81=B4=E3=81=AEtry-excep?= =?UTF-8?q?t=E3=81=AF=E3=81=84=E3=82=89=E3=81=AA=E3=81=9D=E3=81=86?= =?UTF-8?q?=E3=81=AA=E3=81=AE=E3=81=A7=E6=B6=88=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/jskult-batch-ultmarc-io/.env.example | 31 ++++----- ecs/jskult-batch-ultmarc-io/src/main.py | 64 +++++++++++-------- .../src/system_var/environment.py | 26 +++----- 3 files changed, 58 insertions(+), 63 deletions(-) diff --git a/ecs/jskult-batch-ultmarc-io/.env.example b/ecs/jskult-batch-ultmarc-io/.env.example index 500f843d..dfbf73e8 100644 --- a/ecs/jskult-batch-ultmarc-io/.env.example +++ b/ecs/jskult-batch-ultmarc-io/.env.example @@ -3,24 +3,21 @@ DB_PORT=************ DB_USERNAME=************ DB_PASSWORD=************ DB_SCHEMA=src05 + LOG_LEVEL=INFO -ULTMARC_DATA_BUCKET=**************** -ULTMARC_DATA_FOLDER=recv -JSKULT_BACKUP_BUCKET=**************** -ULTMARC_BACKUP_FOLDER=ultmarc -VJSK_BACKUP_FOLDER=vjsk +PROCESS_NAME=jskult-batch-ultmarc-io JSKULT_CONFIG_BUCKET=********************** -JSKULT_CONFIG_CALENDAR_FOLDER=jskult/calendar -JSKULT_CONFIG_CALENDAR_HOLIDAY_LIST_FILE_NAME=jskult_holiday_list.txt -VJSK_DATA_SEND_FOLDER=send -VJSK_DATA_RECEIVE_FOLDER=recv -VJSK_DATA_BUCKET=************* -JSKULT_CONFIG_CALENDAR_WHOLESALER_STOCK_FILE_NAME=jskult_wholesaler_stock_input_day_list.txt JSKULT_CONFIG_CONVERT_FOLDER=jskult/convert JSKULT_ULTMARC_HEX_CONVERT_CONFIG_FILE_NAME=ultmarc_hex_convert_config.json -# 連携データ抽出期間 -SALES_LAUNDERING_EXTRACT_DATE_PERIOD=0 -# 洗替対象テーブル名 -SALES_LAUNDERING_TARGET_TABLE_NAME=src05.sales_lau -# 卸実績洗替で作成するデータの期間(年単位) -SALES_LAUNDERING_TARGET_YEAR_OFFSET=5 +ULTMARC_DATA_BUCKET=**************** +ULTMARC_DATA_FOLDER=import +JSK_IO_BUCKET=************* +JSK_DATA_SEND_FOLDER=send +JSKULT_BACKUP_BUCKET=**************** +JSK_BACKUP_FOLDER=jsk/send +DCF_DSF_SEND_FILE_NAME=ult_dcf_dsf.csv + +DB_CONNECTION_MAX_RETRY_ATTEMPT=4 +DB_CONNECTION_RETRY_INTERVAL_INIT=5 +DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS=5 +DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS=50 diff --git a/ecs/jskult-batch-ultmarc-io/src/main.py b/ecs/jskult-batch-ultmarc-io/src/main.py index 346cb79e..0f252a89 100644 --- a/ecs/jskult-batch-ultmarc-io/src/main.py +++ b/ecs/jskult-batch-ultmarc-io/src/main.py @@ -14,37 +14,45 @@ batch_context = BatchContext.get_instance() def exec(): + + logger.info('アルトマーク取込/データ出力:開始') + + hdke_tbl_manager = JskultHdkeTblManager() try: - logger.info('アルトマーク取込/データ出力:開始') - hdke_tbl_manager = JskultHdkeTblManager() if not hdke_tbl_manager.can_run_process(): logger.error('日次バッチ処理中日次バッチ処理中またはdump取得が正常終了していないため、日次バッチ処理を終了します。') return constants.BATCH_EXIT_CODE_SUCCESS - - _, _, syor_date = hdke_tbl_manager.get_batch_statuses() - logger.info(f'処理日={syor_date}') - # バッチ共通設定に処理日を追加 - batch_context.syor_date = syor_date - - try: - logger.info('アルトマーク取込:起動') - import_ultmarc_process.exec_import() - logger.info('アルトマーク取込:終了') - except BatchOperationException as e: - logger.exception(f'アルトマーク取込処理エラー(異常終了){e}') - return constants.BATCH_EXIT_CODE_SUCCESS - - try: - logger.info('V実消化用施設データ作成処理:起動') - output_dcf_dsf_data.exec() - logger.info('V実消化用施設データ作成処理:終了') - except BatchOperationException as e: - logger.exception(f'V実消化用施設データ作成処理エラー(異常終了){e}') - return constants.BATCH_EXIT_CODE_SUCCESS - - logger.info('アルトマーク取込/データ出力:終了') + except BatchOperationException as e: + logger.exception(f'日付テーブルチェック処理エラー(異常終了){e}') + # TODO: バッチステータス管理テーブルにエラーを登録 return constants.BATCH_EXIT_CODE_SUCCESS - except Exception as e: - logger.exception(f'日次バッチ処理中に想定外のエラーが発生しました {e}') - raise e + _, _, syor_date = hdke_tbl_manager.get_batch_statuses() + logger.info(f'処理日={syor_date}') + # バッチ共通設定に処理日を追加 + batch_context.syor_date = syor_date + + # TODO: バッチステータス管理テーブルに処理中を登録 + + try: + logger.info('アルトマーク取込:起動') + import_ultmarc_process.exec_import() + logger.info('アルトマーク取込:終了') + except BatchOperationException as e: + logger.exception(f'アルトマーク取込処理エラー(異常終了){e}') + # TODO: バッチステータス管理テーブルにエラーを登録 + return constants.BATCH_EXIT_CODE_SUCCESS + + try: + logger.info('V実消化用施設データ作成処理:起動') + output_dcf_dsf_data.exec() + logger.info('V実消化用施設データ作成処理:終了') + except BatchOperationException as e: + logger.exception(f'V実消化用施設データ作成処理エラー(異常終了){e}') + # TODO: バッチステータス管理テーブルにエラーを登録 + return constants.BATCH_EXIT_CODE_SUCCESS + + # TODO: バッチステータス管理テーブルに処理済を登録 + + logger.info('アルトマーク取込/データ出力:終了') + return constants.BATCH_EXIT_CODE_SUCCESS diff --git a/ecs/jskult-batch-ultmarc-io/src/system_var/environment.py b/ecs/jskult-batch-ultmarc-io/src/system_var/environment.py index 0af7a118..4903ff01 100644 --- a/ecs/jskult-batch-ultmarc-io/src/system_var/environment.py +++ b/ecs/jskult-batch-ultmarc-io/src/system_var/environment.py @@ -8,20 +8,17 @@ DB_PASSWORD = os.environ['DB_PASSWORD'] DB_SCHEMA = os.environ['DB_SCHEMA'] # AWS -ULTMARC_DATA_BUCKET = os.environ['ULTMARC_DATA_BUCKET'] -ULTMARC_DATA_FOLDER = os.environ['ULTMARC_DATA_FOLDER'] -JSKULT_BACKUP_BUCKET = os.environ['JSKULT_BACKUP_BUCKET'] -ULTMARC_BACKUP_FOLDER = os.environ['ULTMARC_BACKUP_FOLDER'] -VJSK_BACKUP_FOLDER = os.environ['VJSK_BACKUP_FOLDER'] +PROCESS_NAME = os.environ['PROCESS_NAME'] JSKULT_CONFIG_BUCKET = os.environ['JSKULT_CONFIG_BUCKET'] -JSKULT_CONFIG_CALENDAR_FOLDER = os.environ['JSKULT_CONFIG_CALENDAR_FOLDER'] -JSKULT_CONFIG_CALENDAR_HOLIDAY_LIST_FILE_NAME = os.environ['JSKULT_CONFIG_CALENDAR_HOLIDAY_LIST_FILE_NAME'] -VJSK_DATA_SEND_FOLDER = os.environ['VJSK_DATA_SEND_FOLDER'] -VJSK_DATA_BUCKET = os.environ['VJSK_DATA_BUCKET'] -JSKULT_CONFIG_CALENDAR_WHOLESALER_STOCK_FILE_NAME = os.environ['JSKULT_CONFIG_CALENDAR_WHOLESALER_STOCK_FILE_NAME'] JSKULT_CONFIG_CONVERT_FOLDER = os.environ['JSKULT_CONFIG_CONVERT_FOLDER'] JSKULT_ULTMARC_HEX_CONVERT_CONFIG_FILE_NAME = os.environ['JSKULT_ULTMARC_HEX_CONVERT_CONFIG_FILE_NAME'] -VJSK_DATA_RECEIVE_FOLDER = os.environ['VJSK_DATA_RECEIVE_FOLDER'] +ULTMARC_DATA_BUCKET = os.environ['ULTMARC_DATA_BUCKET'] +ULTMARC_DATA_FOLDER = os.environ['ULTMARC_DATA_FOLDER'] +JSK_IO_BUCKET = os.environ['JSK_IO_BUCKET'] +JSK_DATA_SEND_FOLDER = os.environ['JSK_DATA_SEND_FOLDER'] +JSKULT_BACKUP_BUCKET = os.environ['JSKULT_BACKUP_BUCKET'] +JSK_BACKUP_FOLDER = os.environ['JSK_BACKUP_FOLDER'] +DCF_DSF_SEND_FILE_NAME = os.environ['DCF_DSF_SEND_FILE_NAME'] # 初期値がある環境変数 LOG_LEVEL = os.environ.get('LOG_LEVEL', 'INFO') @@ -29,10 +26,3 @@ DB_CONNECTION_MAX_RETRY_ATTEMPT = int(os.environ.get('DB_CONNECTION_MAX_RETRY_AT DB_CONNECTION_RETRY_INTERVAL_INIT = int(os.environ.get('DB_CONNECTION_RETRY_INTERVAL', 5)) DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS = int(os.environ.get('DB_CONNECTION_RETRY_MIN_SECONDS', 5)) DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS = int(os.environ.get('DB_CONNECTION_RETRY_MAX_SECONDS', 50)) - -# 連携データ抽出期間 -SALES_LAUNDERING_EXTRACT_DATE_PERIOD = int(os.environ['SALES_LAUNDERING_EXTRACT_DATE_PERIOD']) -# 洗替対象テーブル名 -SALES_LAUNDERING_TARGET_TABLE_NAME = os.environ['SALES_LAUNDERING_TARGET_TABLE_NAME'] -# 卸実績洗替で作成するデータの期間(年単位) -SALES_LAUNDERING_TARGET_YEAR_OFFSET = os.environ['SALES_LAUNDERING_TARGET_YEAR_OFFSET']