rust #10
@ -322,7 +322,8 @@ impl OrderManagerHandle {
|
||||
const SLEEP_DURATION: u64 = 5;
|
||||
|
||||
async fn run_order_manager(mut manager: OrderManager) {
|
||||
let mut sleep = tokio::time::interval(Duration::from_secs(5));
|
||||
let mut sleep =
|
||||
tokio::time::interval(Duration::from_secs(OrderManagerHandle::SLEEP_DURATION));
|
||||
|
||||
loop {
|
||||
tokio::select! {
|
||||
@ -348,19 +349,6 @@ impl OrderManagerHandle {
|
||||
Self { sender }
|
||||
}
|
||||
|
||||
pub async fn update(&mut self, tick: u64) -> Result<OptionUpdate, BoxError> {
|
||||
let (send, recv) = oneshot::channel();
|
||||
|
||||
self.sender
|
||||
.send(ActorMessage {
|
||||
message: Message::Update { tick },
|
||||
respond_to: send,
|
||||
})
|
||||
.await?;
|
||||
|
||||
Ok(recv.await?)
|
||||
}
|
||||
|
||||
pub async fn close_position(&mut self, position_id: u64) -> Result<OptionUpdate, BoxError> {
|
||||
let (send, recv) = oneshot::channel();
|
||||
|
||||
@ -572,23 +560,19 @@ impl PairManager {
|
||||
let mut events = None;
|
||||
let mut messages = None;
|
||||
|
||||
let (price_results, pos_results, order_results) = tokio::join!(
|
||||
let (price_results, pos_results) = tokio::join!(
|
||||
self.price_manager.update(tick),
|
||||
self.position_manager.update(tick),
|
||||
self.order_manager.update(tick)
|
||||
);
|
||||
|
||||
let (opt_price_events, opt_price_messages) = price_results?;
|
||||
let (opt_pos_events, opt_pos_messages) = pos_results?;
|
||||
let (opt_order_events, opt_order_messages) = order_results?;
|
||||
|
||||
events.merge(opt_price_events);
|
||||
events.merge(opt_pos_events);
|
||||
events.merge(opt_order_events);
|
||||
|
||||
messages.merge(opt_price_messages);
|
||||
messages.merge(opt_pos_messages);
|
||||
messages.merge(opt_order_messages);
|
||||
|
||||
// TODO: to move into Handler?
|
||||
if let Some(messages) = messages {
|
||||
|
Loading…
Reference in New Issue
Block a user