diff --git a/ecs/jskult-dbdump/README.md b/ecs/jskult-dbdump/README.md index f6e7c2da..7d8f0ccd 100644 --- a/ecs/jskult-dbdump/README.md +++ b/ecs/jskult-dbdump/README.md @@ -1,8 +1,8 @@ -# 実消化&アルトマーク 月次バッチ +# 日次バッチ処理前DBダンプ取得  ## 概要 -実消化&アルトマークの月次バッチ処理。 +日次バッチ処理前DBダンプ取得処理。 ## 環境情報 @@ -42,7 +42,7 @@ - VSCode 上で「F5」キーを押下すると、バッチ処理が起動する。 - 「entrypoint.py」が、バッチ処理のエントリーポイント。 -- 実際の処理は、「src/jobctrl_monthly.py」で行っている。 +- 実際の処理は、「src/jobctrl_dbdump.py」で行っている。 ## フォルダ構成(工事中) diff --git a/ecs/jskult-dbdump/entrypoint.py b/ecs/jskult-dbdump/entrypoint.py index 9a13c457..543cb134 100644 --- a/ecs/jskult-dbdump/entrypoint.py +++ b/ecs/jskult-dbdump/entrypoint.py @@ -1,4 +1,4 @@ -"""実消化&アルトマーク 月次バッチのエントリーポイント""" +"""実消化&アルトマーク 日次バッチ処理前DBダンプ取得のエントリーポイント""" from src import jobctrl_dbdump if __name__ == '__main__': diff --git a/ecs/jskult-dbdump/src/batch/batch_functions.py b/ecs/jskult-dbdump/src/batch/batch_functions.py index da329291..87231e17 100644 --- a/ecs/jskult-dbdump/src/batch/batch_functions.py +++ b/ecs/jskult-dbdump/src/batch/batch_functions.py @@ -58,7 +58,7 @@ def update_dump_status_kbn_in_processing() -> None: return -def update_dump_status_kbn_in_error() -> None: +def update_dump_status_kbn_error() -> None: """dump取得状況区分をエラーに更新する Raises: @@ -83,7 +83,7 @@ def update_dump_status_kbn_in_error() -> None: return -def update_dump_status_kbn_in_complete() -> None: +def update_dump_status_kbn_complete() -> None: """dump取得状況区分を正常終了に更新する Raises: diff --git a/ecs/jskult-dbdump/src/batch/common/batch_context.py b/ecs/jskult-dbdump/src/batch/common/batch_context.py deleted file mode 100644 index 8c8c12fb..00000000 --- a/ecs/jskult-dbdump/src/batch/common/batch_context.py +++ /dev/null @@ -1,29 +0,0 @@ -class BatchContext: - __instance = None - __syor_date: str # 処理日(yyyy/mm/dd形式) - __is_arisj_output_day: bool # 月次バッチ起動日フラグ - - def __init__(self) -> None: - self.__is_arisj_output_day = False - - @classmethod - def get_instance(cls): - if cls.__instance is None: - cls.__instance = cls() - return cls.__instance - - @property - def syor_date(self): - return self.__syor_date - - @syor_date.setter - def syor_date(self, syor_date_str: str): - self.__syor_date = syor_date_str - - @property - def is_arisj_output_day(self): - return self.__is_arisj_output_day - - @is_arisj_output_day.setter - def is_arisj_output_day(self, flag: bool): - self.__is_arisj_output_day = flag diff --git a/ecs/jskult-dbdump/src/db/database.py b/ecs/jskult-dbdump/src/db/database.py index 67f5c5a5..ee127d51 100644 --- a/ecs/jskult-dbdump/src/db/database.py +++ b/ecs/jskult-dbdump/src/db/database.py @@ -4,11 +4,8 @@ from sqlalchemy.engine.url import URL from tenacity import retry, stop_after_attempt, wait_exponential from src.error.exceptions import DBException -from src.logging.get_logger import get_logger from src.system_var import environment -logger = get_logger(__name__) - class Database: """データベース操作クラス""" @@ -74,9 +71,7 @@ class Database: min=environment.DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS, max=environment.DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS ), - stop=stop_after_attempt(environment.DB_CONNECTION_MAX_RETRY_ATTEMPT), - retry_error_cls=DBException - ) + stop=stop_after_attempt(environment.DB_CONNECTION_MAX_RETRY_ATTEMPT)) def connect(self): """ DBに接続します。接続に失敗した場合、リトライします。 diff --git a/ecs/jskult-dbdump/src/jobctrl_dbdump.py b/ecs/jskult-dbdump/src/jobctrl_dbdump.py index 02b8da84..7eba902a 100644 --- a/ecs/jskult-dbdump/src/jobctrl_dbdump.py +++ b/ecs/jskult-dbdump/src/jobctrl_dbdump.py @@ -6,8 +6,8 @@ import subprocess import textwrap from src.batch.batch_functions import (get_batch_statuses, - update_dump_status_kbn_in_complete, - update_dump_status_kbn_in_error, + update_dump_status_kbn_complete, + update_dump_status_kbn_error, update_dump_status_kbn_in_processing) from src.error.exceptions import BatchOperationException from src.logging.get_logger import get_logger @@ -28,12 +28,12 @@ def exec(): # 日次バッチ処理中の場合、処理は行わない if batch_processing_flag == constants.BATCH_ACTF_BATCH_IN_PROCESSING: - logger.error('日次バッチ処理中の為、処理を終了') + logger.error('日次バッチ処理中の為、日次バッチ処理前DBダンプ取得を終了します。') return constants.BATCH_EXIT_CODE_SUCCESS # dump処理状態区分が処理中またはエラーの場合、処理は行わない if dump_status_kbn == constants.DUMP_STATUS_KBN_PROCESSED or dump_status_kbn == constants.DUMP_STATUS_KBN_ERROR: - logger.error(f'dump処理状態区分が実行不可な状態の為、処理を終了 dump処理状態区分={dump_status_kbn}') + logger.error(f'ダンプ取得が実行不可能な状態の為、日次バッチ処理前DBダンプ取得を終了します。 dump処理状態区分={dump_status_kbn}') return constants.BATCH_EXIT_CODE_SUCCESS # dump処理状態区分を処理中に更新 @@ -74,6 +74,7 @@ def exec(): '--set-gtid-purged=OFF', environment.DB_SCHEMA ] + mysqldump_process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) # gzipコマンドを実行してdump結果を圧縮する gzip_process = subprocess.Popen(['gzip'], stdin=mysqldump_process.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE) @@ -102,7 +103,7 @@ def exec(): # dump処理状態区分を正常終了に更新 try: - update_dump_status_kbn_in_complete() + update_dump_status_kbn_complete() except BatchOperationException as e: logger.exception(f'dump処理状態区分更新(処理中→正常終了) エラー(異常終了):{e}') return constants.BATCH_EXIT_CODE_SUCCESS @@ -113,7 +114,7 @@ def exec(): except Exception as e: # dump処理状態区分をエラーに更新 try: - update_dump_status_kbn_in_error() + update_dump_status_kbn_error() except BatchOperationException as e: logger.exception(f'dump処理状態区分更新(処理中→エラー) エラー(異常終了):{e}') return constants.BATCH_EXIT_CODE_SUCCESS diff --git a/ecs/jskult-dbdump/src/system_var/environment.py b/ecs/jskult-dbdump/src/system_var/environment.py index 46f08c5d..ff510581 100644 --- a/ecs/jskult-dbdump/src/system_var/environment.py +++ b/ecs/jskult-dbdump/src/system_var/environment.py @@ -9,6 +9,7 @@ DB_SCHEMA = os.environ['DB_SCHEMA'] # AWS JSKULT_BACKUP_BUCKET = os.environ['JSKULT_BACKUP_BUCKET'] +DUMP_BACKUP_FOLDER = os.environ['DUMP_BACKUP_FOLDER'] # 初期値がある環境変数 LOG_LEVEL = os.environ.get('LOG_LEVEL', 'INFO') @@ -17,4 +18,3 @@ DB_CONNECTION_RETRY_INTERVAL_INIT = int(os.environ.get('DB_CONNECTION_RETRY_INTE 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)) -DUMP_BACKUP_FOLDER = os.environ['DUMP_BACKUP_FOLDER']