Completed
Push — master ( d86bef...858da0 )
by Edward
03:38
created

st2actions.cmd._run_worker()   A

Complexity

Conditions 3

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 3
dl 0
loc 11
rs 9.4285
1
import os
2
import sys
3
4
from st2common import log as logging
5
from st2common.service_setup import setup as common_setup
6
from st2common.service_setup import teardown as common_teardown
7
from st2common.util.monkey_patch import monkey_patch
8
from st2actions.resultstracker import config
9
from st2actions.resultstracker import resultstracker
10
11
__all__ = [
12
    'main'
13
]
14
15
16
monkey_patch()
17
18
LOG = logging.getLogger(__name__)
19
20
21
def _setup():
22
    common_setup(service='resultstracker', config=config, setup_db=True,
23
                 register_mq_exchanges=True, register_signal_handlers=True)
24
25
26
def _run_worker():
27
    LOG.info('(PID=%s) Results tracker started.', os.getpid())
28
    tracker = resultstracker.get_tracker()
29
    try:
30
        tracker.start(wait=True)
31
    except (KeyboardInterrupt, SystemExit):
32
        LOG.info('(PID=%s) Results tracker stopped.', os.getpid())
33
        tracker.shutdown()
34
    except:
35
        return 1
36
    return 0
37
38
39
def _teardown():
40
    common_teardown()
41
42
43
def main():
44
    try:
45
        _setup()
46
        return _run_worker()
47
    except SystemExit as exit_code:
48
        sys.exit(exit_code)
49
    except:
50
        LOG.exception('(PID=%s) Results tracker quit due to exception.', os.getpid())
51
        return 1
52
    finally:
53
        _teardown()
54