2021-11-18 05:30:06 +13:00
|
|
|
const { createBullBoard } = require("@bull-board/api")
|
|
|
|
const { BullAdapter } = require("@bull-board/api/bullAdapter")
|
|
|
|
const { KoaAdapter } = require("@bull-board/koa")
|
2022-10-14 05:27:04 +13:00
|
|
|
const { queue } = require("@budibase/backend-core")
|
2022-10-14 05:55:05 +13:00
|
|
|
const automation = require("../threads/automation")
|
2022-10-27 06:50:40 +13:00
|
|
|
const { backups } = require("@budibase/pro")
|
2021-09-09 06:29:28 +12:00
|
|
|
|
2022-10-14 05:55:05 +13:00
|
|
|
let automationQueue = queue.createQueue(
|
2022-10-15 07:24:03 +13:00
|
|
|
queue.JobQueue.AUTOMATION,
|
2022-10-14 05:55:05 +13:00
|
|
|
automation.removeStalled
|
|
|
|
)
|
2021-11-17 07:58:24 +13:00
|
|
|
|
2021-11-18 05:30:06 +13:00
|
|
|
const PATH_PREFIX = "/bulladmin"
|
2021-05-07 23:24:51 +12:00
|
|
|
|
2022-10-27 06:50:40 +13:00
|
|
|
exports.init = async () => {
|
2021-05-07 23:24:51 +12:00
|
|
|
// Set up queues for bull board admin
|
2022-10-27 06:50:40 +13:00
|
|
|
const backupQueue = await backups.getBackupQueue()
|
2021-09-09 06:29:28 +12:00
|
|
|
const queues = [automationQueue]
|
2022-10-27 06:50:40 +13:00
|
|
|
if (backupQueue) {
|
|
|
|
queues.push(backupQueue)
|
|
|
|
}
|
2021-05-07 23:24:51 +12:00
|
|
|
const adapters = []
|
2021-11-18 05:30:06 +13:00
|
|
|
const serverAdapter = new KoaAdapter()
|
2021-05-07 23:24:51 +12:00
|
|
|
for (let queue of queues) {
|
|
|
|
adapters.push(new BullAdapter(queue))
|
|
|
|
}
|
2021-11-18 05:30:06 +13:00
|
|
|
createBullBoard({
|
|
|
|
queues: adapters,
|
|
|
|
serverAdapter,
|
|
|
|
})
|
|
|
|
serverAdapter.setBasePath(PATH_PREFIX)
|
|
|
|
return serverAdapter.registerPlugin()
|
2021-05-08 00:55:57 +12:00
|
|
|
}
|
2021-09-09 06:29:28 +12:00
|
|
|
|
2022-05-31 08:22:06 +12:00
|
|
|
exports.shutdown = async () => {
|
2022-10-14 05:27:04 +13:00
|
|
|
await queue.shutdown()
|
2022-05-31 08:22:06 +12:00
|
|
|
}
|
|
|
|
|
2022-10-14 05:39:26 +13:00
|
|
|
exports.automationQueue = automationQueue
|