From 3f02c88718bf03612906c6549b616e6af512d9ac Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Tue, 22 Jun 2021 10:57:08 -0400 Subject: [PATCH] Better live order handling logic --- piker/clearing/_ems.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/piker/clearing/_ems.py b/piker/clearing/_ems.py index b3b4679d..54497a5d 100644 --- a/piker/clearing/_ems.py +++ b/piker/clearing/_ems.py @@ -556,9 +556,7 @@ async def process_client_order_cmds( # check for live-broker order if live_entry: - - reqid = reqid or live_entry.reqid - assert reqid + reqid = live_entry.reqid msg = BrokerdCancel( oid=oid, @@ -566,21 +564,24 @@ async def process_client_order_cmds( time_ns=time.time_ns(), ) - # send cancel to brokerd immediately! - log.info("Submitting cancel for live order {reqid}") - # NOTE: cancel response will be relayed back in messages # from corresponding broker - await brokerd_order_stream.send(msg.dict()) + if reqid: + # send cancel to brokerd immediately! + log.info("Submitting cancel for live order {reqid}") + + await brokerd_order_stream.send(msg.dict()) + + else: + # this might be a cancel for an order that hasn't been + # acked yet by a brokerd, so register a cancel for when + # the order ack does show up later such that the brokerd + # order request can be cancelled at that time. + dark_book._ems_entries[oid] = msg + + # dark trigger cancel else: - # this might be a cancel for an order that hasn't been - # acked yet by a brokerd, so register a cancel for when - # the order ack does show up later such that the brokerd - # order request can be cancelled at that time. - dark_book._ems_entries[oid] = msg - - # check for EMS active exec try: # remove from dark book clearing dark_book.orders[symbol].pop(oid, None)