我正在缓存来自在线资源的数据,以备将来在机器学习中使用。此数据是规范的并且没有丢失条目。
如果实时连接断开或机器重新启动,我有一个保护措施,可以对缓存中丢失的一系列 id 进行历史搜索。
然而,我尚未实现的是一种搜索集合并识别跳过 id 值的范围的机制。
例如:
{"entry_id": 27497713, ...}
{"entry_id": 27497761, ...}
Run Code Online (Sandbox Code Playgroud)
此数据有明显的差距,其中27497713和之间缺少条目27497761。
有没有办法可以使用查询找到这样的差距?也许至少可以通过选择两个范围之间的值并检查返回条目的数量来缩小范围?鉴于集合包含多少条目,我试图避免大量查询以提高效率。
我正在编写一个从API请求数据的NodeJS服务。在负载下,我不想对API施加潜在的数百个同时请求,因此我试图将请求排队,以使它们一个接一个地执行,并且在它们之间有延迟。
const request = require( 'request' );
class WebService {
constructor() {
this.RequestQueue = [];
}
_Get( uri, options, reply ) {
return new Promise( ( resolve, reject ) => {
request.get( uri, options, ( err, resp, body ) => {
if ( err )
reject( err );
reply( resp );
resolve( resp );
} );
} );
}
async onRequest( data, reply ) {
this.RequestQueue.push( this._Get( data.uri, data.opts, reply ) );
}
async execute() {
while( this.RequestQueue.length > 0 …Run Code Online (Sandbox Code Playgroud) 我有一个在 NodeJS 应用程序中执行 CRUD 操作的类。它旨在对操作进行排队并按顺序执行它们。到目前为止,我在多个其他文件中使用此类,因此有多个实例,每个实例都有自己单独的队列。
我的目标是能够在所有其他模块之间共享相同的队列,而无需多个实例,以便所有 CRUD 操作都按照调用的顺序依次执行。
//SomeFile.js
var data = new CRUDQueue();
data.addRecord(someRecord); //Pushes an add operation to the internal queue
//SomeOtherFile.js
var data = new CRUDQueue();
data.deleteRecord(someRecord); //Pushes a delete operation to the internal queue
Run Code Online (Sandbox Code Playgroud)
有没有办法可以CRUDQueue在这两个文件之间共享同一个对象?最好不使用global或将其传递给构造函数?
鉴于以下两个实现(在 ES6 / NodeJS 中)
async TestFunc() {
return new Promise((resolve,reject) => {
...
});
}
Run Code Online (Sandbox Code Playgroud)
和
TestFunc() {
return new Promise((resolve,reject) => {
...
});
}
Run Code Online (Sandbox Code Playgroud)
如果我像这样调用这些函数中的任何一个,行为上有什么不同吗?
await TestFunc();
Run Code Online (Sandbox Code Playgroud)
我假设第一个(异步)实现将返回一个承诺,我们将等待它返回另一个承诺,而后一个(同步)实现将返回承诺,然后等待它。然而,它们都按预期工作,让我有点困惑。