/
batch_main.py
62 lines (51 loc) · 2.05 KB
/
batch_main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import gettext
import logging
from django.core.management.base import BaseCommand
from django.db import ProgrammingError
from django.utils.translation import gettext
from app_pypeach_django.application.service.employees import EmployeesService
from app_pypeach_django.application.service.scrapy import ScrapyService
"""
BaseCommandを継承したバッチ起動クラスです。
"""
__author__ = "t.ebinuma"
__version__ = "1.0"
__date__ = "25 December 2018"
class Command(BaseCommand):
def add_arguments(self, parser):
"""
引数をセットする
"""
parser.add_argument('parameter', nargs='+', type=str)
def handle(self, *args, **options):
"""
コマンド実行時のハンドラ。
引数に応じて各サービスを実行する
"""
execute_batch = None
for index, parameter in enumerate(options['parameter']):
if index == 0:
execute_batch = parameter
logging.info(gettext("I900"), execute_batch)
try:
if execute_batch == 'create_employees':
EmployeesService.create_employees()
elif execute_batch == 'create_departments':
EmployeesService.create_departments()
elif execute_batch == 'update_employees':
EmployeesService.update_employees()
elif execute_batch == 'select_employees':
EmployeesService.select_employees()
elif execute_batch == 'truncate_employees':
EmployeesService.truncate_employees()
elif execute_batch == 'create_scrapy_html':
ScrapyService.create_scrapy_html()
elif execute_batch == 'parse_scrapy_html':
ScrapyService.parse_scrapy_html()
else:
logging.info(gettext("E902"), execute_batch)
except ProgrammingError as e:
logging.exception(gettext("E903"), e)
except Exception as e:
logging.exception(gettext("E990"), e)
logging.info(gettext("I901"), execute_batch)