41 lines
722 B
JavaScript
41 lines
722 B
JavaScript
![]() |
const { v4: uuid } = require('uuid')
|
||
|
const Queue = require('bull')
|
||
|
const Redis = require('ioredis')
|
||
|
const { redisUrl } = require('../config')
|
||
|
const redis = new Redis(redisUrl)
|
||
|
|
||
|
const queue = new Queue('proofs', redisUrl)
|
||
|
|
||
|
async function postJob(type, data) {
|
||
|
const id = uuid()
|
||
|
|
||
|
const job = await queue.add(
|
||
|
'proofs',
|
||
|
{
|
||
|
id,
|
||
|
type,
|
||
|
data,
|
||
|
},
|
||
|
// { removeOnComplete: true },
|
||
|
)
|
||
|
await redis.set(`job:${id}`, job.id)
|
||
|
return id
|
||
|
}
|
||
|
|
||
|
async function getJob(uuid) {
|
||
|
const id = await redis.get(`job:${uuid}`)
|
||
|
return queue.getJobFromId(id)
|
||
|
}
|
||
|
|
||
|
async function getJobStatus(uuid) {
|
||
|
const job = await getJob(uuid)
|
||
|
// ...
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
postJob,
|
||
|
getJob,
|
||
|
getJobStatus,
|
||
|
queue,
|
||
|
}
|