node.js - 回复错误:ERR 未知命令“evalsha”(Node.js,公牛)
问题描述
我正在尝试在 Windows 上使用带有 Redis 的公牛包进行大量工作,我的服务器已启动并正在运行,但是当我尝试访问该作业时,它给了我一个错误,我的代码到目前为止。
const queue = require('bull');
const jobs = new queue('jobs')
jobs.process((job, done) => {
try {
console.log(job)
} catch (error) {
console.log(error)
}
})
app.post('/upload', (req, res) => {
let dat = req.query;
jobs.add(dat).then(() => {
console.log('done')
}).catch(e => console.log(e))
res.send('job done')
})
这是错误:
{ name: 'evalsha',
args:
[ '0a9a51ee96320953ec7bde8e63f3f060b9dac00c',
'6',
'bull:jobs:wait',
'bull:jobs:paused',
'bull:jobs:meta-paused',
'bull:jobs:id',
'bull:jobs:delayed',
'bull:jobs:priority',
'bull:jobs:',
'',
'__default__',
'{"data":"muny"}',
'{"attempts":1,"delay":0,"timestamp":1568792004594}',
'1568792004594',
'0',
'0',
'0',
'LPUSH',
'4fc02f94-d198-4353-b1b3-8da40399a9c5' ] } }
任何猜测为什么会这样?即使我这样做了,它也会抛出未处理的承诺拒绝,这种行为是否仅适用于 Windows?
解决方案
如我所见,您正在使用redis 2.4.6
但根据文档:
EVALSHA sha1 numkeys key [key ...] arg [arg ...]
Available since 2.6.0.
所以,这就是抛出这个错误的原因。
现在,基本上如果你找不到适用于 Windows 的 redis 二进制文件,你可以从这里下载 3.2.1
推荐阅读
- swift - Swift - 在蒙版图像上放置阴影
- linux - 如何使用 gcc-9?
- visual-studio-2019 - Visual Studio 2019 中数据库比较结果的导出到 CSV 选项
- python - 使用 scipy 优化问题中的雅可比矩阵计算问题
- kotlin - 用于收集 Avro 对象的序列化程序
- javascript - Google Drive api 错误 gapi.client.request
- python - 在python中比较列表和矩阵的字符串
- javascript - 在 php 中使用 JS 变量进行 sql 查询
- javascript - 如何更改单击复选框的背景
- c++ - std::string 的 compare 和 == 之间的区别