指摘事項修正
This commit is contained in:
parent
1ae009115d
commit
c290448730
@ -1,8 +1,8 @@
|
||||
# 実消化&アルトマーク 月次バッチ
|
||||
# 日次バッチ処理前DBダンプ取得
|
||||
|
||||
## 概要
|
||||
|
||||
実消化&アルトマークの月次バッチ処理。
|
||||
日次バッチ処理前DBダンプ取得処理。
|
||||
|
||||
## 環境情報
|
||||
|
||||
@ -42,7 +42,7 @@
|
||||
|
||||
- VSCode 上で「F5」キーを押下すると、バッチ処理が起動する。
|
||||
- 「entrypoint.py」が、バッチ処理のエントリーポイント。
|
||||
- 実際の処理は、「src/jobctrl_monthly.py」で行っている。
|
||||
- 実際の処理は、「src/jobctrl_dbdump.py」で行っている。
|
||||
|
||||
|
||||
## フォルダ構成(工事中)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
"""実消化&アルトマーク 月次バッチのエントリーポイント"""
|
||||
"""実消化&アルトマーク 日次バッチ処理前DBダンプ取得のエントリーポイント"""
|
||||
from src import jobctrl_dbdump
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
@ -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に接続します。接続に失敗した場合、リトライします。
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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']
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user