-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_tasks_scheduler_server.py
More file actions
38 lines (27 loc) · 1.29 KB
/
run_tasks_scheduler_server.py
File metadata and controls
38 lines (27 loc) · 1.29 KB
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
import os
from load_dotenv import load_dotenv
from io_remastered.extra_modules import InMemoryDatabase
from io_remastered.tasks_scheduler import TasksSchedulerServer
class TasksSchedulerServerRunner:
def __init__(self):
self.__mainloop_pooling_interval = int(
os.getenv("MAINLOOP_POOLING_INTERVAL", 5))
self.__max_running_tasks = int(os.getenv("MAX_RUNNING_TASKS", 5))
self.__whimdb_server_address = os.getenv("WHIMDB_SERVER_ADDRESS")
self.__whimdb_server_port = os.getenv("WHIMDB_SERVER_PORT")
self.__in_memory_database = InMemoryDatabase(db_id=1)
def run(self):
if self.__whimdb_server_address is None or self.__whimdb_server_port is None:
raise Exception("can't connect to in memory database.")
self.__in_memory_database.setup(
server_address=self.__whimdb_server_address,
server_port=int(self.__whimdb_server_port), flush=True)
server = TasksSchedulerServer(
broker_db=self.__in_memory_database, max_running_tasks=self.__max_running_tasks,
mainloop_pooling_interval=self.__mainloop_pooling_interval)
server.run()
if __name__ == "__main__":
load_dotenv(".env.app")
load_dotenv(".env.tasks")
runner = TasksSchedulerServerRunner()
runner.run()