微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redis / Lettuce / Stream - 如何在 xadd

如何解决Redis / Lettuce / Stream - 如何在 xadd

我正在使用 Java 作为馈送器和 python 作为消费者来实现价格馈送。我比 Java 更像 Python。我需要从 Java 发送我自己的条目 ID(时间戳),但我没有找到有关如何执行此操作的示例和清晰的文档(我是入门级 Java)。

这是现在工作的java代码,但是发送认的Redis条目id,相当于发送:XADD stream_id * key_1 value_1 key_2 value_2。

public void onTick(Instrument instrument,ITick tick) throws JFException {

        String _streamName = instrument.name() + ":tick";
        long _tickDate = tick.getTime();
        String _sTickDate = Long.toString(_tickDate);

        double _ask = tick.getAsk();
        double _bid = tick.getBid();

        Map<String,String> _messageBody = new HashMap<>();
        _messageBody.put( "ask",Double.toString(_ask) );
        _messageBody.put( "bid",Double.toString(_bid) );

        console.getout().println("Sending to " + _streamName + " -> " + tick);

        this.sync.xadd(_streamName,_messageBody);    
    }

在 python 中使用 redis-py 非常简单。

def send_tick(self,instrument,bar_size,tick):
        _stream_id = f"{instrument}:{bar_size}"
        self.client.xadd(_stream_id,{"bid": tick[self.BID_KEY],"ask": tick[self.ASK_KEY]},id=tick[self.TS_KEY])

它在 id= 命名参数中发送。

我将不胜感激

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。