同步运行的期货程序里,想把自上次检查以来收到的服务器通知集中交给日志或界面处理,可以使用天勤 TqSdk 的TqNotify。它提供的是通知收集入口,不是启动前历史日志恢复,也不是成交确认接口。
在已有 API 上创建一次通知对象
假设程序已有正常驱动的api,先创建与它绑定的通知对象:
notify=TqNotify(api)这一步放在初始化位置,不要为了每轮读取而重新创建一个对象。账户连接与登录仍由原程序负责,这里不需要另写账号配置。
推进更新后,取新增列表
在原有同步更新循环中读取:
whileTrue:api.wait_update()new_notifies=notify.get_notifies()foriteminnew_notifies:print(item)# 本地显示示意get_notifies取得的是自上次调用以来的通知列表,没有新通知时返回空列表。空列表是正常情况,不应仅凭它判断程序出了故障,也不要期待每次wait_update后都必然出现通知。
示例中的print只是把各项交给本地显示;需要自己的界面或记录时,可以在这个处理位置安排。这里没有真实通知文本、通知次数或外部推送结果。
通知与业务核对各有职责
收到服务器通知后,仍要根据自己的用途处理内容,不能把“收到一条通知”自动解释成某笔委托已经成交。真实委托、成交和持仓需要用对应业务数据核对。
TqNotify 也不替你提供跨进程持久历史、恰好一次的外部送达或短信、微信推送保证。把它用作现有同步程序的增量通知入口,便能清楚区分通知读取与后续显示、保存和业务判断的职责。