ReplyError:ERR未知命令'evalsha'(Node.js,bull)
我正在Windows上使用Redis与Bull包一起工作,我的服务器已启动并正在运行,但是当我尝试访问该作业时,它给我一个错误,到目前为止我的代码。
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
,但根据doc:
EVALSHA sha1 numkeys key [key ...] arg [arg ...]
Available since 2.6.0.
所以,这就是抛出此错误的原因。
现在,基本上,如果您找不到Windows的Redis二进制文件,则可以从here下载3.2.1。>
ReplyError:ERR未知命令'evalsha'(Node.js,bull)
我正在Windows上使用Redis与Bull包一起工作,我的服务器已启动并正在运行,但是当我尝试访问该作业时,它给我一个错误,到目前为止我的代码。
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
,但根据doc:
EVALSHA sha1 numkeys key [key ...] arg [arg ...]
Available since 2.6.0.
所以,这就是抛出此错误的原因。
现在,基本上,如果您找不到Windows的Redis二进制文件,则可以从here下载3.2.1。>