-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
83 lines (70 loc) · 2.1 KB
/
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/user/env python3
# -*- coding: utf-8 -*-
from config import Config, EmptyObject, MICRO_TO_WEI, NUKO_TO_WEI
from init import Init
from ether_interface import EtherInterface
from tipnem_control import TipnemControl
from incoming import IncomingPolling
from rest_api import RestApi
from log_module import MakeLogging
import time
import logging
import sys
version = "1.0"
""" logging module """
log_obj = MakeLogging()
log_obj.make_file_handler()
log_obj.make_stream_handler()
logging.getLogger("urllib3").setLevel(logging.WARNING)
logging.getLogger("requests").setLevel(logging.WARNING)
def main(mycfg):
logging.info("# start system")
init = Init(mycfg=mycfg)
init.check()
init.close()
logging.info("# finish initialize")
""" Class """
obj = EmptyObject()
obj.neko = EtherInterface(mycfg=mycfg)
obj.tip = TipnemControl(mycfg=mycfg)
obj.income = IncomingPolling(mycfg=mycfg)
obj.rest = RestApi(mycfg=mycfg)
""" import object """
obj.neko.obj = obj
obj.tip.obj = obj
obj.income.obj = obj
obj.rest.obj = obj
""" threading start """
obj.income.start()
obj.rest.start()
obj.tip.start_control() # blocking main thread
""" check """
count = 0
while True:
try:
count += 1
time.sleep(1)
if mycfg.stop_signal:
raise Exception("kill signal")
if count % 1800 == 0:
logging.info("# checking living %d" % count)
except Exception as e:
logging.info("# input stop signal")
while True:
mycfg.stop_signal = True
time.sleep(1)
for name in mycfg.stop_need_obj:
if name not in mycfg.stop_ok:
logging.info("# wait for %s" % name)
break
else:
logging.info("# exit ok!")
exit(0)
if __name__ == '__main__':
if 'main' in sys.argv:
test = False
else:
test = True
logging.info("# test mode!")
config = Config(test=test)
main(mycfg=config)