赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 操作指南
  5. 消息模型
  6. 基础操作
  7. Queue管理

Queue管理

  • 基础操作
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文介绍使用消息模型时如何进行Queue管理。

获取Queue实例

Queue是单个消息队列的抽象概念,对应TimelineStore下单个Identifier的所有消息。获取Queue实例时通过TimelineStore的接口创建。

TimelineIdentifier identifier = new TimelineIdentifier.Builder()
        .addField("timeline_id", "group_1")
        .build();

//单TimelineStore下单identifier对应的消息队列(Queue)。
TimelineQueue timelineQueue = timelineStore.createTimelineQueue(identifier);

Queue是单存储库下单Identifier对应的消息队列的管理实例,主要有同步写、异步写、批量写、删、同步改、异步改、单行读、范围读等接口。

Store

同步存储消息,两个接口分别支持SequenceId的两种实现方式自增列和手动设置,相关配置在TimelineSchema中。

timelineQueue.store(message); //自增列实现的SequenceId。
timelineQueue.store(sequenceId, message); //手动设置SequenceId。

StoreAsync

异步存储消息,您可以自定义回调,对成功或者失败做自定义处理。接口返回Future<TimelineEntry>。

TimelineCallback callback = new TimelineCallback() {
    @Override
    public void onCompleted(TimelineIdentifier i, TimelineMessage m, TimelineEntry t) {
        // do something when succeed.
    }

    @Override
    public void onFailed(TimelineIdentifier i, TimelineMessage m, Exception e) {
        // do something when failed.
    }
};

timelineQueue.storeAsync(message, callback); //自增列实现的SequenceId。
timelineQueue.storeAsync(sequenceId, message, callback); //手动设置SequenceId。

BatchStore

批量存储消息,支持无回调和有回调两种方式。您可以自定义回调,对成功或者失败做自定义处理。

timelineQueue.batchStore(message); //自增列实现的SequenceId。
timelineQueue.batchStore(sequenceId, message); //手动设置SequenceId。

timelineQueue.batchStore(message, callback); //自增列实现的SequenceId。
timelineQueue.batchStore(sequenceId, message, callback); //手动设置SequenceId。

Get

通过SequenceId读取单行消息。当消息不存在时不抛错,返回null。

timelineQueue.get(sequenceId);

GetLatestTimelineEntry

读取最新一条消息。当消息不存在时不抛错,返回null。

timelineQueue.getLatestTimelineEntry();

GetLatestSequenceId

获取最新一条消息的SequenceId。当消息不存在时不抛错,返回0。

timelineQueue.getLatestSequenceId();

Update

通过SequenceId同步更新消息内容。

TimelineMessage message = new TimelineMessage().setField("text", "Timeline is fine.");

//update message with new field
message.setField("text", "new value");
timelineQueue.update(sequenceId, message);

UpdateAsync

通过SequenceId异步更新消息。您可以自定义回调,对成功或者失败做自定义处理。接口返回Future<TimelineEntry>。

TimelineMessage oldMessage = new TimelineMessage().setField("text", "Timeline is fine.");
TimelineCallback callback = new TimelineCallback() {
    @Override
    public void onCompleted(TimelineIdentifier i, TimelineMessage m, TimelineEntry t) {
        // do something when succeed.
    }

    @Override
    public void onFailed(TimelineIdentifier i, TimelineMessage m, Exception e) {
        // do something when failed.
    }
};

TimelineMessage newMessage = oldMessage;
newMessage.setField("text", "new value");
timelineQueue.updateAsync(sequenceId, newMessage, callback);

Delete

根据SequenceId删除单行消息。

timelineQueue.delete(sequenceId);

Scan

根据Scan参数正序(或逆序)范围读取单个Queue下的消息,返回Iterator<TimelineEntry>,通过迭代器遍历。

ScanParameter scanParameter = new ScanParameter().scanBackward(Long.MAX_VALUE, 0);

timelineQueue.scan(scanParameter);
相关文章

初始化 2025-04-22 14:43

使用消息模型时,您需要完成Factory、MetaStore和TimelineStore的初始化。本文介绍如何完成初始化的配置和操作。 前提条件

Meta管理 2025-04-22 14:43

Meta管理提供了增、删、改、单行读、多条件组合查询等接口。 Meta管理的多条件组合查询功能基于多元索引,只有设置了IndexSchema的MetaStore才支持。索引类型支持LONG、DOUBLE、BOOLEAN、KEYWORD和GEO_POINT等类型,属性包含Index、Store和Arr

Timeline管理 2025-04-22 14:43

Timeline管理提供了消息模糊查询、多条件组合查询以及Flush接口。 Search Timeline管理的查询功能基于多元索引的Se

Queue管理 2025-04-22 14:43

本文介绍使用消息模型时如何进行Queue管理。 获取Queue实例 Queue是单个消息队列的抽象概念,对应TimelineStore下单

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号