首页 > 其他分享 >把深度行情推入queue队列的问题

把深度行情推入queue队列的问题

时间:2023-08-29 17:23:50浏览次数:38  
标签:InstrumentID 队列 pDepthMarketData wr2310 queue print 推入

深度行情是一个对象,把对象推入queue队列,传的是引用,内部的值会变化。

mddata = Queue()
#回调中写入Queue
def OnRtnDepthMarketData(self, pDepthMarketData):
    mddata.put(pDepthMarketData)
    
#另起线程死循环从Queue中拿数据
def storedata():
    i = 0
    while True:
        i += 1
        d = mddata.get()
        print(i, d.InstrumentID)
        print(i, d.InstrumentID)
        print(i, d.InstrumentID)
        print(i, d.InstrumentID)
        print(i, d.InstrumentID)
        print(i, d.InstrumentID)
        print(i, d.InstrumentID)
        print(i, d.InstrumentID)
        print(i, d.InstrumentID)
        print(i, d.InstrumentID)
        print(i, d.InstrumentID)

输出的结果如下,i没变,说明在一个循环里的同一个属性,值却在不断变化,还有空值。

#输出的结果如下
1 wr2310
1 wr2310
1 wr2310
1 wr2310
1 bc2310
1 ec2404
1 ec2404
1 ec2404
1 TL2312
1 
1

解决方案:

一般的对象,进行深拷贝就能解决问题,copy.deepcopy(object) 但是CTP获取到的pDepthMarketData并不能进行深拷贝。所以还是直接获取数据组装成列表或字典再推入到队列里。

标签:InstrumentID,队列,pDepthMarketData,wr2310,queue,print,推入
From: https://www.cnblogs.com/yuyanc/p/17665396.html

相关文章

  • 深入研究消息队列01
    一、消息队列技术趋势 早年业界消息队列演进的主要推动力在于功能(如延迟消息、事务消息、顺序消息等)、场景(实时场景、大数据场景等)、分布式集群的支持等等。近几年,随着云原生架构和Serverless的普及,业界MQ主要向实时消息和流消息的融合架构、Serverless、Event、协议兼容等方......
  • 园子的脱困努力-线上大会合作:欢迎预约直播——2023腾讯全球数字生态大会 + 腾讯云微服
    在园子脱困的关键时期,每一笔收入都很重要,一边在会员救园,一边我们要努力把握每一个商务合作机会,争取早日走出困境。之前园子维持生存的收入主要来自于与云厂商的合作,但去年由于云厂商推广策略的调整,这块收入几乎没有了。当我们对这块收入不报任何希望时,这个月开始,有些云厂商又回......
  • P9588 队列
    思路观察发现\(x\),\(y\),\(z\)都可以很大,所以如果直接用队列老老实实地操作,肯定过不了。因为每次加入都是\(1,2,3,\cdotsx\)所以这段是连续的,所以我们考虑一段一段的存入队列,记录每一段的左右端点。操作\(2\)的删除,就一段一段地删除,如果删不完一段,就改这一段的左端点。......
  • 手撕代码之栈和队列
    文章目录一、括号匹配(leetcode20)二、最小栈(leetcode155)三、两个栈实现一个队列(leetcode232)一、括号匹配(leetcode20)classSolution{public:boolisValid(strings){if(s.empty())returntrue;stack<char>stk;stk.push(s[0]......
  • 基于Redis的队列
    1.队列//发布@ApiOperation(value="put普通队列")@PostMapping("/queuePut")publicObjectput(@RequestBodyCommonMapRespDTOrespDTO){for(inti=0;i<20;i++){//队列RQueue<Object>queue=redissonClient.g......
  • redis 消息队列方案
    List实现消息队列使用LPUSH、RPOP左进右出或RPUSH、LPOP右进左出,实现消息顺序消费使用BLPOP、BRPOP这种阻塞式读取的命令,实现消息及时消费ack机制使用,使用index读取list的消息,正常消费完成后再使用POP删除//使用redission实现@Slf4j@ServicepublicclassQue......
  • 栈和队列在数据结构中的应用
    文章目录理解栈和队列的概念及其特点栈的应用和操作队列的应用和操作结论......
  • 队列和栈
    队列和栈是两种常见的数据结构,常用于存储和操作数据的方式。它们有不同的特点和用途。队列(Queue)是一种先进先出(First-In-First-Out,FIFO)的数据结构。可以将其想象成排队的人群,仅允许在队尾插入元素,从队头移除元素。新元素总是加入到队列的末尾,而最先加入的元素会最先被移除。队列......
  • 堆(优先队列)
    又名优先队列堆由完全二叉树构成,其每个节点都有一个键值,且每个节点的键值都大于等于/小于等于其父亲的键值每个节点的键值都大于等于其父亲键值的堆叫做小根堆,否则叫做大根堆。STL中的priority_queue其实就是一个大根堆我们模拟的是小根堆,下标从1开始1是根节点,令\(x\)的左......
  • 二叉树层序遍历队列实现
    参考:二叉树的层序遍历(两种方法实现)_askunix_hjh的博客-CSDN博客题解|#求二叉树的层序遍历#_牛客博客(nowcoder.net)题解二:BFS(迭代)主要思路:广度优先8.27用到的思路是广度优先,循环,不是递归......