レビュー指摘対応

This commit is contained in:
mori.k 2025-06-04 10:27:59 +09:00
parent fae67ae4e7
commit ce1c7b6527
4 changed files with 74 additions and 40 deletions

View File

@ -15,6 +15,8 @@ class DCFInstMergeEnvironment(JskultBatchEnvironment):
self.PROCESS_NAME = environment.PROCESS_NAME self.PROCESS_NAME = environment.PROCESS_NAME
self.JSK_DATA_SEND_FOLDER = environment.JSK_DATA_SEND_FOLDER self.JSK_DATA_SEND_FOLDER = environment.JSK_DATA_SEND_FOLDER
self.JSK_BACKUP_FOLDER = environment.JSK_BACKUP_FOLDER self.JSK_BACKUP_FOLDER = environment.JSK_BACKUP_FOLDER
self.TRANSFER_RESULT_FOLDER = environment.TRANSFER_RESULT_FOLDER
self.TRANSFER_RESULT_FILE_NAME = environment.TRANSFER_RESULT_FILE_NAME
self.DCF_INST_MERGE_SEND_FILE_NAME = environment.DCF_INST_MERGE_SEND_FILE_NAME self.DCF_INST_MERGE_SEND_FILE_NAME = environment.DCF_INST_MERGE_SEND_FILE_NAME
def validate(self): def validate(self):
@ -38,5 +40,9 @@ class DCFInstMergeEnvironment(JskultBatchEnvironment):
super()._assert_variable_not_empty( super()._assert_variable_not_empty(
self.JSK_DATA_SEND_FOLDER, 'JSK_DATA_SEND_FOLDER') self.JSK_DATA_SEND_FOLDER, 'JSK_DATA_SEND_FOLDER')
super()._assert_variable_not_empty(self.JSK_BACKUP_FOLDER, 'JSK_BACKUP_FOLDER') super()._assert_variable_not_empty(self.JSK_BACKUP_FOLDER, 'JSK_BACKUP_FOLDER')
super()._assert_variable_not_empty(
self.TRANSFER_RESULT_FOLDER, 'TRANSFER_RESULT_FOLDER')
super()._assert_variable_not_empty(
self.TRANSFER_RESULT_FILE_NAME, 'TRANSFER_RESULT_FILE_NAME')
super()._assert_variable_not_empty(self.DCF_INST_MERGE_SEND_FILE_NAME, super()._assert_variable_not_empty(self.DCF_INST_MERGE_SEND_FILE_NAME,
'DCF_INST_MERGE_SEND_FILE_NAME') 'DCF_INST_MERGE_SEND_FILE_NAME')

View File

@ -7,16 +7,17 @@ class UpdateBusinessDayEnvironment(JskultBatchEnvironment):
"""実消化&アルトマークのバッチ処理で使用する環境変数を管理するクラス""" """実消化&アルトマークのバッチ処理で使用する環境変数を管理するクラス"""
def __init__(self): def __init__(self):
self.PROCESS_NAME = environment.PROCESS_NAME
self.JSKULT_CONFIG_BUCKET = environment.JSKULT_CONFIG_BUCKET
self.JSKULT_BACKUP_BUCKET = environment.JSKULT_BACKUP_BUCKET self.JSKULT_BACKUP_BUCKET = environment.JSKULT_BACKUP_BUCKET
self.BATCH_MANAGE_DYNAMODB_TABLE_NAME = environment.BATCH_MANAGE_DYNAMODB_TABLE_NAME self.BATCH_MANAGE_DYNAMODB_TABLE_NAME = environment.BATCH_MANAGE_DYNAMODB_TABLE_NAME
self.ARCHIVE_STATEMACHINE_ARN = environment.ARCHIVE_STATEMACHINE_ARN
self.BATCH_EXECUTION_ID = environment.BATCH_EXECUTION_ID self.BATCH_EXECUTION_ID = environment.BATCH_EXECUTION_ID
self.MAX_RUN_COUNT = environment.MAX_RUN_COUNT self.MAX_RUN_COUNT = environment.MAX_RUN_COUNT
self.PROCESS_NAME = environment.PROCESS_NAME self.JSKULT_CONFIG_CALENDAR_FOLDER = environment.JSKULT_CONFIG_CALENDAR_FOLDER
self.TRANSFER_RESULT_FOLDER = environment.TRANSFER_RESULT_FOLDER self.JSKULT_CONFIG_CALENDAR_RUN_ARCHIVE_DAY_FILE_NAME = environment.JSKULT_CONFIG_CALENDAR_RUN_ARCHIVE_DAY_FILE_NAME
self.TRANSFER_RESULT_FILE_NAME = environment.TRANSFER_RESULT_FILE_NAME self.JSKULT_CONFIG_EXPECTED_DATA_LIST_FOLDER = environment.JSKULT_CONFIG_EXPECTED_DATA_LIST_FOLDER
self.JSK_RECEIVE_FOLDER = environment.JSK_RECEIVE_FOLDER self.JSKULT_CONFIG_EXPECTED_DATA_LIST_FILE_NAME = environment.JSKULT_CONFIG_EXPECTED_DATA_LIST_FILE_NAME
self.ARCHIVE_STATEMACHINE_ARN = environment.ARCHIVE_STATEMACHINE_ARN
def validate(self): def validate(self):
""" """
必須の環境変数が設定されているかどうか検査する 必須の環境変数が設定されているかどうか検査する
@ -25,18 +26,34 @@ class UpdateBusinessDayEnvironment(JskultBatchEnvironment):
Raises: Raises:
EnvironmentVariableNotSetException: 環境変数の設定ミス EnvironmentVariableNotSetException: 環境変数の設定ミス
""" """
super()._assert_variable_not_empty(
self.PROCESS_NAME, 'PROCESS_NAME')
super()._assert_variable_not_empty( super()._assert_variable_not_empty(
self.JSKULT_BACKUP_BUCKET, 'JSKULT_BACKUP_BUCKET') self.JSKULT_BACKUP_BUCKET, 'JSKULT_BACKUP_BUCKET')
super()._assert_variable_not_empty(
self.JSKULT_CONFIG_BUCKET, 'JSKULT_CONFIG_BUCKET')
super()._assert_variable_not_empty( super()._assert_variable_not_empty(
self.BATCH_MANAGE_DYNAMODB_TABLE_NAME, 'BATCH_MANAGE_DYNAMODB_TABLE_NAME') self.BATCH_MANAGE_DYNAMODB_TABLE_NAME, 'BATCH_MANAGE_DYNAMODB_TABLE_NAME')
super()._assert_variable_not_empty(self.BATCH_EXECUTION_ID, 'BATCH_EXECUTION_ID') super()._assert_variable_not_empty(
super()._assert_variable_is_int(self.MAX_RUN_COUNT, 'MAX_RUN_COUNT') self.ARCHIVE_STATEMACHINE_ARN, 'ARCHIVE_STATEMACHINE_ARN')
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は数値として扱うため、検査後に変換 # MAX_RUN_COUNTは数値として扱うため、検査後に変換
self.MAX_RUN_COUNT = int(self.MAX_RUN_COUNT) self.MAX_RUN_COUNT = int(self.MAX_RUN_COUNT)
super()._assert_variable_not_empty(self.PROCESS_NAME, 'PROCESS_NAME')
super()._assert_variable_not_empty( super()._assert_variable_not_empty(
self.TRANSFER_RESULT_FOLDER, 'TRANSFER_RESULT_FOLDER') self.JSKULT_CONFIG_CALENDAR_FOLDER,
'JSKULT_CONFIG_CALENDAR_FOLDER')
super()._assert_variable_not_empty( super()._assert_variable_not_empty(
self.TRANSFER_RESULT_FILE_NAME, 'TRANSFER_RESULT_FILE_NAME') self.JSKULT_CONFIG_CALENDAR_RUN_ARCHIVE_DAY_FILE_NAME,
super()._assert_variable_not_empty(self.JSK_RECEIVE_FOLDER, 'JSK_RECEIVE_FOLDER') 'JSKULT_CONFIG_CALENDAR_RUN_ARCHIVE_DAY_FILE_NAME')
super()._assert_variable_not_empty(self.ARCHIVE_STATEMACHINE_ARN, 'ARCHIVE_STATEMACHINE_ARN') super()._assert_variable_not_empty(
self.JSKULT_CONFIG_EXPECTED_DATA_LIST_FOLDER,
'JSKULT_CONFIG_EXPECTED_DATA_LIST_FOLDER')
super()._assert_variable_not_empty(
self.JSKULT_CONFIG_EXPECTED_DATA_LIST_FILE_NAME,
'JSKULT_CONFIG_EXPECTED_DATA_LIST_FILE_NAME')

View File

@ -8,7 +8,8 @@ from src.batch.environment.update_business_day_environment import \
from src.manager.jskult_batch_run_manager import JskultBatchRunManager from src.manager.jskult_batch_run_manager import JskultBatchRunManager
from src.manager.jskult_batch_status_manager import JskultBatchStatusManager from src.manager.jskult_batch_status_manager import JskultBatchStatusManager
from src.manager.jskult_hdke_tbl_manager import JskultHdkeTblManager from src.manager.jskult_hdke_tbl_manager import JskultHdkeTblManager
from src.error.exceptions import EnvironmentVariableNotSetException from src.error.exceptions import (EnvironmentVariableNotSetException,
MaxRunCountReachedException)
from src.logging.get_logger import get_logger from src.logging.get_logger import get_logger
from src.system_var import constants from src.system_var import constants
@ -35,9 +36,9 @@ class UpdateBusinessDay(JskultBatchEntrypoint):
jskult_batch_status_manager = JskultBatchStatusManager( jskult_batch_status_manager = JskultBatchStatusManager(
self.environment.PROCESS_NAME, self.environment.PROCESS_NAME,
# TODO チケットNEWDWH2021-1847の実装で作成した定数に置き換え constants.PROCESS_NAME_UPDATE_BUSINESS_DAY,
'update_business_day',
self.environment.MAX_RUN_COUNT, self.environment.MAX_RUN_COUNT,
# 日付テーブル更新では連携ファイル数を参照しないため、0を指定する。
0 0
) )
@ -54,18 +55,25 @@ class UpdateBusinessDay(JskultBatchEntrypoint):
# バッチ実行管理テーブルをfailedで登録 # バッチ実行管理テーブルをfailedで登録
jskult_batch_run_manager.batch_failed() jskult_batch_run_manager.batch_failed()
if not jskult_batch_status_manager.can_run_business_day_update(): # バッチステータス管理テーブルをエラーに更新
# 後続処理の起動条件を満たしていない場合
# 処理ステータスを「処理待」に設定
jskult_batch_status_manager.set_process_status( jskult_batch_status_manager.set_process_status(
constants.PROCESS_STATUS_WAITING) constants.PROCESS_STATUS_ERROR)
# バッチ実行管理テーブルに「retry」で登録
jskult_batch_run_manager.batch_retry()
logger.info('処理待実消化アルトマーク_日付テーブル更新')
return return
try:
if not jskult_batch_status_manager.can_run_post_process():
# 後続処理の起動条件を満たしていない場合
# 処理ステータスを「処理待」に設定
jskult_batch_status_manager.set_process_status(
constants.PROCESS_STATUS_WAITING)
# バッチ実行管理テーブルに「retry」で登録
jskult_batch_run_manager.batch_retry()
return
except MaxRunCountReachedException:
logger.info('後続処理の実行が完了していないため、日付テーブル更新処理を異常終了します。')
try: try:
# TODO アーカイブ取得日カレンダーを取得する # TODO アーカイブ取得日カレンダーを取得する
get_archive_calendar = None get_archive_calendar = None
@ -102,12 +110,12 @@ class UpdateBusinessDay(JskultBatchEntrypoint):
# TODO jsk_receive_file_listと比較して受領予定にないファイルがあった場合(I-6)ログ出力 # TODO jsk_receive_file_listと比較して受領予定にないファイルがあった場合(I-6)ログ出力
pass pass
JskultHdkeTblManager.update_batch_process_complete() jskult_hdke_tbl_manager.update_batch_process_complete()
# 処理ステータスを「処理済」に設定 # 処理ステータスを「処理済」に設定
jskult_batch_status_manager.set_process_status( jskult_batch_status_manager.set_process_status(
constants.PROCESS_STATUS_DONE) constants.PROCESS_STATUS_DONE)
JskultBatchRunManager.batch_success() jskult_batch_run_manager.batch_success()
logger.info('[NOTICE]処理終了: 実消化アルトマーク_日付テーブル更新') logger.info('[NOTICE]処理終了: 実消化アルトマーク_日付テーブル更新')
except Exception as e: except Exception as e:

View File

@ -12,21 +12,24 @@ PROCESS_NAME = os.environ.get('PROCESS_NAME', None)
# AWS # AWS
JSKULT_CONFIG_BUCKET = os.environ.get('JSKULT_CONFIG_BUCKET', None) JSKULT_CONFIG_BUCKET = os.environ.get('JSKULT_CONFIG_BUCKET', None)
JSKULT_BACKUP_BUCKET = os.environ.get('JSKULT_BACKUP_BUCKET', None)
BATCH_MANAGE_DYNAMODB_TABLE_NAME = os.environ.get('BATCH_MANAGE_DYNAMODB_TABLE_NAME', None)
ARCHIVE_STATEMACHINE_ARN = os.environ('ARCHIVE_STATEMACHINE_ARN', None)
BATCH_EXECUTION_ID = os.environ.get('BATCH_EXECUTION_ID', None) BATCH_EXECUTION_ID = os.environ.get('BATCH_EXECUTION_ID', None)
MAX_RUN_COUNT = os.environ.get('MAX_RUN_COUNT', None) MAX_RUN_COUNT = os.environ.get('MAX_RUN_COUNT', None)
TRANSFER_RESULT_FOLDER = os.environ.get('TRANSFER_RESULT_FOLDER', None) TRANSFER_RESULT_FOLDER = os.environ.get('TRANSFER_RESULT_FOLDER', None)
TRANSFER_RESULT_FILE_NAME = os.environ.get('TRANSFER_RESULT_FILE_NAME', None) TRANSFER_RESULT_FILE_NAME = os.environ.get('TRANSFER_RESULT_FILE_NAME', None)
DCF_INST_MERGE_SEND_FILE_NAME = os.environ.get( JSKULT_CONFIG_CALENDAR_FOLDER = os.environ.get(
'DCF_INST_MERGE_SEND_FILE_NAME', None) 'JSKULT_CONFIG_CALENDAR_FOLDER', None
JSKULT_BACKUP_BUCKET = os.environ.get('JSKULT_BACKUP_BUCKET', None) )
JSK_IO_BUCKET = os.environ.get('JSK_IO_BUCKET', None) JSKULT_CONFIG_CALENDAR_RUN_ARCHIVE_DAY_FILE_NAME = os.environ.get(
JSK_BACKUP_FOLDER = os.environ.get('JSK_BACKUP_FOLDER', None) 'JSKULT_CONFIG_CALENDAR_RUN_ARCHIVE_DAY_FILE_NAME', None
JSK_DATA_SEND_FOLDER = os.environ.get('JSK_DATA_SEND_FOLDER', None) )
JSK_RECEIVE_FOLDER = os.environ.get('JSK_RECEIVE_FOLDER', None) JSKULT_CONFIG_EXPECTED_DATA_LIST_FOLDER = os.environ.get(
BATCH_MANAGE_DYNAMODB_TABLE_NAME = os.environ.get( 'JSKULT_CONFIG_EXPECTED_DATA_LIST_FOLDER', None
'BATCH_MANAGE_DYNAMODB_TABLE_NAME', None) )
ARCHIVE_STATEMACHINE_ARN = os.environ( JSKULT_CONFIG_EXPECTED_DATA_LIST_FILE_NAME = os.environ.get(
'ARCHIVE_STATEMACHINE_ARN', None 'JSKULT_CONFIG_EXPECTED_DATA_LIST_FILE_NAME', None
) )