Olá,
Existe uma maneira de ter um retorno de chamada para xadd algo como:
redisClient.xadd(streamName, '*',....,function(err,resp){
console.log(resp);
});
Eu tentei e tive erros.
Obrigado!
Mike
@ mikeslim7 isso existe. Você pode postar um código real (em vez de ....
), pois acho que pode ser apenas um pequeno erro.
Eu tenho um erro do que ligar
redisClient.xadd('mystream', '*', 'field1', 'm1', function (err) {
});
{ ReplyError: ERR unknown command `xadd`, with args beginning with: `mystream`, `*`, `field1`, `m1`,
at parseError (/home/work/node_modules/redis-parser/lib/parser.js:193:12)
at parseType (/home/work/node_modules/redis-parser/lib/parser.js:303:14)
command: 'XADD',
args: [ 'mystream', '*', 'field1', 'm1' ],
code: 'ERR' }
@protectedvar Você tem uma versão do Redis que não oferece suporte a streams (não relacionado a este problema).
@stockholmux A v2.8.0 suporta callback xadd?
@gcobcqwe Sim.
Eu tenho o mesmo problema com a última versão node_redis (2.8.0?). Também tentei usar diretamente o branch master, com lança o mesmo erro.
O código a seguir não é executado.
const rdb = redis.createClient("redis://localhost:6379");
const send = promisify(rdb.sendCommand).bind(rdb);
const n = {forename: "foo", lastname: "bar"};
send(`XADD nameStream * ${JSON.stringify(n)}`).catch(e => console.error(e));
ReplyError: ERR desconhecido comando xadd namestream * {"forename":"foo","lastname":"bar"}
, com args começando com:
em parseError (/Users/hendrik/git/ownprojects/databroker/node_modules/redis-parser/lib/parser.js:193:12)
em parseType (/Users/hendrik/git/ownprojects/databroker/node_modules/redis-parser/lib/parser.js:303:14) {
comando: 'XADD NAMESTREAM * {"FORENAME": "FOO", "LASTNAME": "BAR"}',
código: 'ERR'
}
Ei, @hbel. Acho que seu formato está incorreto.
XADD mystream * field1 value1 field2 value2 field3 value3
https://redis.io/commands/xadd
O erro postado aqui indica que o erro veio diretamente do servidor Redis, não do cliente. Portanto, estou encerrando esta questão.