# 市场数据监听控制事件 EventMarketActiveSwitch = "market_active_switch" # 市场数据状态变更 MarketDataUpdate = "market_data_update" # 市价更新 MarketOrderCreated = "market_order_created" # 市价单创建 MarketOrderTraded = "market_order_traded" # 市价单成交 MarketOrderError = "market_order_error" # 市价单委托失败 # Pring Log EventPrintLog = "print_log" # 打印日志 class EventBus: def __init__(self): self.listeners = {} # 管理各种event的订阅情况 self.last_events = {} # 存储每个事件的最后一次值,用于"重播"给新订阅者 def subscribe(self, event_type, listener, replay=True): """订阅事件 Args: event_type: 事件类型 listener: 回调函数 replay: 是否自动重播最近一次事件状态(默认True) """ if event_type not in self.listeners: self.listeners[event_type] = [] self.listeners[event_type].append(listener) # 新订阅者自动收到最近一次事件状态(如果存在) if replay and event_type in self.last_events: listener(self.last_events[event_type]) def publish(self, event_type, data): # 存储最后一次事件值 self.last_events[event_type] = data if event_type in self.listeners: for listener in self.listeners[event_type]: listener(data) # # 订阅事件 # event_bus.subscribe('my_event', handle_event) # # 发布事件 # event_bus.publish('my_event', {'key': 'value'}) # 创建事件总线实例 event_bus = EventBus()