-
Notifications
You must be signed in to change notification settings - Fork 0
/
dm_boss.py
60 lines (51 loc) · 1.81 KB
/
dm_boss.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
import datetime
import logging
import random
import traceback
import dm_worker
import file_utils
from config import Config
from file_utils import alogger
logger = logging.getLogger(__name__)
class WorkItem():
def __init__(self, config: Config, run: int, id: str, pair: str, timeframe: int, zeitpunkt: int, candles: int):
self.config = config # config hat guid
self.run = run # run ist die nr. von kompletten 64-process berechnungsvorgang
self.id = id # id ist die process id 1-64
self.pair = pair
self.timeframe = timeframe
self.zeitpunkt = zeitpunkt
self.candles = candles
self.process = None
self.start_time = 0
@alogger
def boss_process(config: Config, process: int):
file_utils.setup_logger_mp(config)
run = 0
while True:
try:
logging.info(f"Erstelle Work Items von Run Nr. {run}.")
if config.DATA_BIS == 0:
bis = int(datetime.datetime.now().timestamp() - (48 * 60 * 60))
else:
bis = config.DATA_BIS
random.seed(file_utils.get_seed())
pair = random.choice(config.PAIRS)
tf = random.choice(config.TIMEFRAMES)
zp = random.randrange(config.DATA_VON, bis)
cd = random.randrange(config.CANDLES_MIN, config.CANDLES_MAX)
item = WorkItem(
config=config,
run=run,
id=str(process),
pair=pair,
timeframe=tf,
zeitpunkt=zp,
candles=cd + 2000
)
logging.info(f"WorkItem von Run Nr. {run}: " + str(vars(item)))
dm_worker.process_item(item)
except Exception as e:
logger.error(str(e))
logger.error(traceback.format_exc())
run += 1