我使用apache ignite缓存作为数据存储。想知道是否有方法从客户端对大型数据集合进行分页。我不需要或希望数百万的记录从服务器转移到我的网络/移动客户端。
private final ClientCache<UUID, Account> accounts;
public List<Account> getAll(int offset, int limit)
{
return accounts.query(new ScanQuery<UUID, Account>()
.setLocal(false))
.getAll()
.stream()
.skip(offset)
.limit(limit)
.map(entity -> entity.getValue())
.collect(Collectors.toList());
}
这是一个有效的方法吗?
我看过使用游标,但API仅限于迭代器...
我在代码中看到getall()
。它使所有的数据都被传送到调用方。这正是你想避免的。
迭代器
避免了这个问题,因为数据是按需批量加载的。因此,在运行查询时,不必将所有内容加载到单个节点的内存中。可以通过设置ScanQuery#PageSize属性来配置页面大小。默认情况下,它等于1024。可以通过调用querycursor.Iterator()
方法获取迭代器。因此,不需要保留偏移量,而是需要保留迭代器。
指定了限制和偏移量的SQL SELECT查询也是一个选项。但是如果您有多个节点,那么在执行过程中,限制+偏移记录将从每个节点加载到reducer。你应该考虑到这一点。
这听起来像是一个新手问题,但我想知道用HAL格式呈现分页资源的最佳方式是什么?现在我正在使用Spring HATEOAS API将对象转换为资源
问题内容: 据我所知,可以在一个单元内进行调试。 但是,我有多个单元格之间的函数调用。 例如, 我试过的 我试图在cell-1的第一行中设置。但是它甚至在执行单元2之前就立即进入调试模式。 我试图在代码之前添加该行。但是,代码永远运行,永不停止。 在ipython笔记本中设置断点的正确方法是什么? 问题答案: 使用 ipdb 通过安装 用法: 用于逐行执行和进入函数使用,并退出调试提示使用。 有关
问题内容: 我最近从Angular转到了ReactJs。我正在使用jQuery进行API调用。我有一个API,该API返回要打印在列表中的随机用户列表。 我不确定如何编写我的API调用。最佳做法是什么? 我尝试了以下操作,但未得到任何输出。如果需要,我愿意实现替代API库。 下面是我的代码: 问题答案: 在这种情况下,您可以在中进行ajax调用,然后进行更新
我已经问了谷歌先生几天,但没有找到任何合适的解决方案。我希望有人能在这里帮助我。很抱歉,如果我的问题不清楚或遗漏了一些东西,因为这是我第一次在这里发帖。谢谢!
问题内容: 我要进行Flask + Nginx + Gunicorn部署。我已经安装并正在运行Nginx,并且按照文档中的说明运行gunicorn: 但是,当我注销服务器时,gunicorn进程退出了吗?确保Nginx保持连接状态并在崩溃时重新启动的正确方法是什么? 问题答案: 运行Gunicorn时使用选项。例:
问题内容: 我正在为MongoDB使用Node.JS驱动程序,我想执行一个同步查询,例如: 问题是,db.open是一个异步调用(它不会阻塞),因此getAThing返回“ undefined”,我希望它返回查询结果。我确定我可以使用某种阻止机制,但我想知道执行此类操作的正确方法。 问题答案: 没有办法使这种同步变得不可怕。正确的方法是接受回调函数作为参数,然后在可用时调用该函数。 节点7.6+更