【发布时间】:2020-01-19 02:23:01
【问题描述】:
我正在尝试在 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?
【问题讨论】:
-
aizen,你用的是哪个版本的redis?
-
啊,我看你也太有文化了,版本是3.11.0
-
您确定您使用的是 3.11 吗?因为 stable 是 redis 5,unstable 是 redis 2.9.x,prod 验证版本是 4(2 年前发布)。你能再检查一次
redis-server --version。想再次确认。 -
redis.io/commands/evalsha 它是在 2.6.x 之后引入的,请确保您拥有正确的版本。我会建议升级 redis 服务器以检查问题是否仍然存在
-
是的,我认为问题出在
redis-server,它是Windows 的最新版本2.4.6,你可以在这里查看-github.com/rgl/redis/downloads。我想可能是这种情况,谢谢你的帮助:)