指摘事項修正

This commit is contained in:
野間 2023-07-12 10:48:07 +09:00
parent 1ae009115d
commit c290448730
7 changed files with 15 additions and 48 deletions

View File

@ -1,8 +1,8 @@
# 実消化&アルトマーク 月次バッチ # 日次バッチ処理前DBダンプ取得 
## 概要 ## 概要
実消化&アルトマークの月次バッチ処理。 日次バッチ処理前DBダンプ取得処理。
## 環境情報 ## 環境情報
@ -42,7 +42,7 @@
- VSCode 上で「F5」キーを押下すると、バッチ処理が起動する。 - VSCode 上で「F5」キーを押下すると、バッチ処理が起動する。
- 「entrypoint.py」が、バッチ処理のエントリーポイント。 - 「entrypoint.py」が、バッチ処理のエントリーポイント。
- 実際の処理は、「src/jobctrl_monthly.py」で行っている。 - 実際の処理は、「src/jobctrl_dbdump.py」で行っている。
## フォルダ構成(工事中) ## フォルダ構成(工事中)

View File

@ -1,4 +1,4 @@
"""実消化&アルトマーク 月次バッチのエントリーポイント""" """実消化&アルトマーク 日次バッチ処理前DBダンプ取得のエントリーポイント"""
from src import jobctrl_dbdump from src import jobctrl_dbdump
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -58,7 +58,7 @@ def update_dump_status_kbn_in_processing() -> None:
return return
def update_dump_status_kbn_in_error() -> None: def update_dump_status_kbn_error() -> None:
"""dump取得状況区分をエラーに更新する """dump取得状況区分をエラーに更新する
Raises: Raises:
@ -83,7 +83,7 @@ def update_dump_status_kbn_in_error() -> None:
return return
def update_dump_status_kbn_in_complete() -> None: def update_dump_status_kbn_complete() -> None:
"""dump取得状況区分を正常終了に更新する """dump取得状況区分を正常終了に更新する
Raises: Raises:

View File

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

View File

@ -4,11 +4,8 @@ from sqlalchemy.engine.url import URL
from tenacity import retry, stop_after_attempt, wait_exponential from tenacity import retry, stop_after_attempt, wait_exponential
from src.error.exceptions import DBException from src.error.exceptions import DBException
from src.logging.get_logger import get_logger
from src.system_var import environment from src.system_var import environment
logger = get_logger(__name__)
class Database: class Database:
"""データベース操作クラス""" """データベース操作クラス"""
@ -74,9 +71,7 @@ class Database:
min=environment.DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS, min=environment.DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS,
max=environment.DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS max=environment.DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS
), ),
stop=stop_after_attempt(environment.DB_CONNECTION_MAX_RETRY_ATTEMPT), stop=stop_after_attempt(environment.DB_CONNECTION_MAX_RETRY_ATTEMPT))
retry_error_cls=DBException
)
def connect(self): def connect(self):
""" """
DBに接続します接続に失敗した場合リトライします DBに接続します接続に失敗した場合リトライします

View File

@ -6,8 +6,8 @@ import subprocess
import textwrap import textwrap
from src.batch.batch_functions import (get_batch_statuses, from src.batch.batch_functions import (get_batch_statuses,
update_dump_status_kbn_in_complete, update_dump_status_kbn_complete,
update_dump_status_kbn_in_error, update_dump_status_kbn_error,
update_dump_status_kbn_in_processing) update_dump_status_kbn_in_processing)
from src.error.exceptions import BatchOperationException from src.error.exceptions import BatchOperationException
from src.logging.get_logger import get_logger from src.logging.get_logger import get_logger
@ -28,12 +28,12 @@ def exec():
# 日次バッチ処理中の場合、処理は行わない # 日次バッチ処理中の場合、処理は行わない
if batch_processing_flag == constants.BATCH_ACTF_BATCH_IN_PROCESSING: if batch_processing_flag == constants.BATCH_ACTF_BATCH_IN_PROCESSING:
logger.error('日次バッチ処理中の為、処理を終了') logger.error('日次バッチ処理中の為、日次バッチ処理前DBダンプ取得を終了します。')
return constants.BATCH_EXIT_CODE_SUCCESS return constants.BATCH_EXIT_CODE_SUCCESS
# dump処理状態区分が処理中またはエラーの場合、処理は行わない # dump処理状態区分が処理中またはエラーの場合、処理は行わない
if dump_status_kbn == constants.DUMP_STATUS_KBN_PROCESSED or dump_status_kbn == constants.DUMP_STATUS_KBN_ERROR: 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 return constants.BATCH_EXIT_CODE_SUCCESS
# dump処理状態区分を処理中に更新 # dump処理状態区分を処理中に更新
@ -74,6 +74,7 @@ def exec():
'--set-gtid-purged=OFF', '--set-gtid-purged=OFF',
environment.DB_SCHEMA environment.DB_SCHEMA
] ]
mysqldump_process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) mysqldump_process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# gzipコマンドを実行してdump結果を圧縮する # gzipコマンドを実行してdump結果を圧縮する
gzip_process = subprocess.Popen(['gzip'], stdin=mysqldump_process.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE) gzip_process = subprocess.Popen(['gzip'], stdin=mysqldump_process.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
@ -102,7 +103,7 @@ def exec():
# dump処理状態区分を正常終了に更新 # dump処理状態区分を正常終了に更新
try: try:
update_dump_status_kbn_in_complete() update_dump_status_kbn_complete()
except BatchOperationException as e: except BatchOperationException as e:
logger.exception(f'dump処理状態区分更新(処理中→正常終了) エラー(異常終了):{e}') logger.exception(f'dump処理状態区分更新(処理中→正常終了) エラー(異常終了):{e}')
return constants.BATCH_EXIT_CODE_SUCCESS return constants.BATCH_EXIT_CODE_SUCCESS
@ -113,7 +114,7 @@ def exec():
except Exception as e: except Exception as e:
# dump処理状態区分をエラーに更新 # dump処理状態区分をエラーに更新
try: try:
update_dump_status_kbn_in_error() update_dump_status_kbn_error()
except BatchOperationException as e: except BatchOperationException as e:
logger.exception(f'dump処理状態区分更新(処理中→エラー) エラー(異常終了):{e}') logger.exception(f'dump処理状態区分更新(処理中→エラー) エラー(異常終了):{e}')
return constants.BATCH_EXIT_CODE_SUCCESS return constants.BATCH_EXIT_CODE_SUCCESS

View File

@ -9,6 +9,7 @@ DB_SCHEMA = os.environ['DB_SCHEMA']
# AWS # AWS
JSKULT_BACKUP_BUCKET = os.environ['JSKULT_BACKUP_BUCKET'] JSKULT_BACKUP_BUCKET = os.environ['JSKULT_BACKUP_BUCKET']
DUMP_BACKUP_FOLDER = os.environ['DUMP_BACKUP_FOLDER']
# 初期値がある環境変数 # 初期値がある環境変数
LOG_LEVEL = os.environ.get('LOG_LEVEL', 'INFO') 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_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)) DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS = int(os.environ.get('DB_CONNECTION_RETRY_MAX_SECONDS', 50))
DUMP_BACKUP_FOLDER = os.environ['DUMP_BACKUP_FOLDER']