指摘事項修正

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」キーを押下すると、バッチ処理が起動する。
- 「entrypoint.py」が、バッチ処理のエントリーポイント。
- 実際の処理は、「src/jobctrl_monthly.py」で行っている。
- 実際の処理は、「src/jobctrl_dbdump.py」で行っている。
## フォルダ構成(工事中)

View File

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

View File

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

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 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に接続します接続に失敗した場合リトライします

View File

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

View File

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