diff --git a/ecs/jskult-batch/src/batch/environment/trn_result_data_bio_lot_environment.py b/ecs/jskult-batch/src/batch/environment/trn_result_data_bio_lot_environment.py new file mode 100644 index 00000000..ec4dfe67 --- /dev/null +++ b/ecs/jskult-batch/src/batch/environment/trn_result_data_bio_lot_environment.py @@ -0,0 +1,28 @@ +from src.batch.environment.jskult_batch_environment import \ + JskultBatchEnvironment +from src.system_var import environment + + +class TrnResultDataBioLotEnvironment(JskultBatchEnvironment): + """実消化&アルトマークのバッチ処理で使用する環境変数を管理するクラス""" + + def __init__(self): + self.BATCH_EXECUTION_ID = environment.BATCH_EXECUTION_ID + self.MAX_RUN_COUNT = environment.MAX_RUN_COUNT + self.PROCESS_NAME = environment.PROCESS_NAME + + def validate(self): + """ + 必須の環境変数が設定されているかどうか検査する。 + DB関連の環境変数は対象外とする。 + + Raises: + EnvironmentVariableNotSetException: 環境変数の設定ミス + """ + + super()._assert_variable_not_empty(self.BATCH_EXECUTION_ID, 'BATCH_EXECUTION_ID') + super()._assert_variable_is_int(self.MAX_RUN_COUNT, 'MAX_RUN_COUNT') + # MAX_RUN_COUNTは数値として扱うため、検査後に変換 + self.MAX_RUN_COUNT = int(self.MAX_RUN_COUNT) + super()._assert_variable_not_empty(self.PROCESS_NAME, 'PROCESS_NAME') + diff --git a/ecs/jskult-batch/src/batch/trn_result_data_bio_lot.py b/ecs/jskult-batch/src/batch/trn_result_data_bio_lot.py index 8d7a0e81..d409668a 100644 --- a/ecs/jskult-batch/src/batch/trn_result_data_bio_lot.py +++ b/ecs/jskult-batch/src/batch/trn_result_data_bio_lot.py @@ -1,13 +1,15 @@ import json from src.aws.s3 import JskTransferListBucket +from src.batch.environment.dcf_inst_merge_environment import \ + DCFInstMergeEnvironment +from src.batch.jskult_batch_entrypoint import JskultBatchEntrypoint from src.manager.jskult_batch_run_manager import JskultBatchRunManager from src.manager.jskult_batch_status_manager import JskultBatchStatusManager from src.manager.jskult_hdke_tbl_manager import JskultHdkeTblManager -from src.batch.jskult_batch_entrypoint import JskultBatchEntrypoint from src.db.database import Database from src.error.exceptions import (BatchOperationException, + EnvironmentVariableNotSetException, MaxRunCountReachedException) -from src.system_var import environment from src.logging.get_logger import get_logger @@ -19,6 +21,14 @@ logger = get_logger('生物由来卸販売ロット分解') class TrnResultDataBioLot(JskultBatchEntrypoint): def __init__(self): super().__init__() + self.environment = DCFInstMergeEnvironment + + # 必須の環境変数が設定されていない場合、エラーにする + try: + self.environment.validate() + except EnvironmentVariableNotSetException as e: + logger.exception(e) + return def execute(self): """生物由来卸販売ロット分解""" @@ -27,7 +37,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint): jskult_hdke_tbl_manager = JskultHdkeTblManager() jskult_batch_run_manager = JskultBatchRunManager( - environment.BATCH_EXECUTION_ID) + self.environment.BATCH_EXECUTION_ID) if not jskult_hdke_tbl_manager.can_run_process(): logger.error( '日次バッチ処理中またはdump取得が正常終了していないため、生物由来卸販売ロット分解処理を終了します。') @@ -56,10 +66,10 @@ class TrnResultDataBioLot(JskultBatchEntrypoint): transfer_list['jsk_transfer_list']) + len(transfer_list['ult_transfer_list']) jskult_batch_status_manager = JskultBatchStatusManager( - environment.PROCESS_NAME, + self.environment.PROCESS_NAME, # TODO チケットNEWDWH2021-1847の実装で作成した定数に置き換え 'post_process', - environment.MAX_RUN_COUNT, + self.environment.MAX_RUN_COUNT, receive_file_count ) try: