MarketMaker now exits cleanly on Control-C (SIG_TERM).

This commit is contained in:
Geoff Taylor 2021-07-19 15:14:00 +01:00
parent 94df52003b
commit c5cd5ca095
2 changed files with 7 additions and 4 deletions

View File

@ -6,6 +6,7 @@ import os
import os.path import os.path
import rx import rx
import sys import sys
import threading
import typing import typing
from decimal import Decimal from decimal import Decimal
@ -250,10 +251,13 @@ pulse_disposable = rx.interval(args.pulse_interval).subscribe(
on_next=lambda _: market_maker.pulse(context, model_state)) on_next=lambda _: market_maker.pulse(context, model_state))
disposer.add_disposable(pulse_disposable) disposer.add_disposable(pulse_disposable)
print("Press <ENTER> to quit.") # Wait - don't exit. Exiting will be handled by signals/interrupts.
waiter = threading.Event()
try:
waiter.wait()
except:
pass
# Wait - don't exit
input()
print("Shutting down...") print("Shutting down...")
ws.close() ws.close()
disposer.dispose() disposer.dispose()

View File

@ -36,7 +36,6 @@ class OrderTracker:
self.tracked += [order] self.tracked += [order]
def existing_orders(self, model_state: ModelState) -> typing.Sequence[mango.Order]: def existing_orders(self, model_state: ModelState) -> typing.Sequence[mango.Order]:
print("Model State Orders", model_state.placed_orders)
live_orders: typing.List[mango.Order] = [] live_orders: typing.List[mango.Order] = []
for placed_order in model_state.placed_orders: for placed_order in model_state.placed_orders:
details = self._find_tracked(placed_order.client_id) details = self._find_tracked(placed_order.client_id)