我有一个小项目需要跟踪指定时间间隔的股票价格%变动。例如。它应该能够跟踪最后30秒,1分钟,3分钟,5分钟,10分钟的AAPL价格%移动。所有股票的时间间隔相同。程序将用C ++编写,并将在Linux上运行,但这并不重要。
以下是我想到的方法,
1)从多播馈送获取股票市场数据,大约4000个符号
2)处理Feed并将其存储在全局报价缓存
中3)产生N个线程,每个间隔一个
4)每个线程将维护自己的符号副本,在启动时使用当前价格从全局缓存初始化每个符号,然后按指定的时间间隔进入休眠状态
5)在唤醒时,捕捉当前价格(从报价缓存中获取报价Feed中的最新值),计算差异,将此信息推送到队列
6)有一个专用线程来读取队列并将价格发布到缓存服务器
7)前端GUI应用程序从缓存服务器读取并显示百分比移动
这种方法应该有效,但是有更好的方法吗?另外一个优化领域可以是合并线程价格捕捉部分(在线程唤醒之后),其中如果两个或更多个线程将同时捕捉,例如, 30秒,1分钟和2分钟的线程将每两分钟拼合一次,因此将它们组合成一个按钮。我可以使用什么逻辑来进行合并?谢谢。