在使用 bull 的时候,我们一般会有下面的几个问题:
-
默认情况下,job能一直运行下去吗
-
job 的超时设置是如何工作的
-
超时之后 job 的运行会自动取消吗
首先看第一个问题,可以直接给出结论,默认情况下job会一直运行下去直到应用关闭
import Bull, { Job } from 'bull'
const main = async () => {
const queue = new Bull('job timeout test', 'redis://127.0.0.1:6379');
queue.process(async (job: Job) => {
for(let i=0; i< 10000; i++){
await new Promise((ok,no) => {
setTimeout(()=>{
ok(null)
},1000)
})
const p = i * 100 / 10000
const log = `job process ${p}`
await job.progress