Skip to main content

Crate ek_event

Crate ek_event 

Source
Expand description

ek-event —— 自包含事件引擎(Rust 复刻 enkeep_trade/event/engine.py)。

语义对齐原版:

  • 单分发线程串行处理(一个 type 的 handler 按注册顺序执行)
  • 无界队列
  • 独立定时线程,默认每 1 秒投递一个 EVENT_TIMER 事件
  • stop() 后队列中未处理的事件被丢弃(对齐原版)

对原版的修正:

  • handler 表全程 RwLock 保护
  • handler panic 被 catch_unwind 隔离,不再杀掉分发线程
  • 注册返回 HandlerId,注销按 id(原版依赖函数对象相等,不可复刻)

Re-exports§

pub use engine::EventEngine;
pub use engine::PutError;
pub use event::Event;
pub use event::EventData;
pub use handler::HandlerFn;
pub use handler::HandlerId;
pub use handler::HandlerRegistry;

Modules§

engine
EventEngine:无界队列 + 单分发线程 + 定时线程。
event
Event 结构体(对齐原版 Event(type, data))。
handler
handler 注册表:RwLock<精确表 + general 表>,HandlerId 去重。

Constants§

EVENT_TIMER
定时事件类型串(与原版 EVENT_TIMER = "eTimer" 对齐)。