処理の始めに環境変数バリデーションチェックの追加

This commit is contained in:
mori.k 2025-05-30 13:22:45 +09:00
parent 7e778a62f9
commit 40207bcad4
2 changed files with 43 additions and 5 deletions

View File

@ -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')

View File

@ -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: