From d3b3426ebe6f38093e23c57b6b11df4200b46a0a Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 4 Feb 2019 13:35:58 +0900 Subject: Enable job queue Resolve #3216 --- src/queue/index.ts | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'src/queue') diff --git a/src/queue/index.ts b/src/queue/index.ts index 431d4cb3e5..5e5f9dae48 100644 --- a/src/queue/index.ts +++ b/src/queue/index.ts @@ -1,9 +1,34 @@ +import * as Queue from 'bee-queue'; +import config from '../config'; import http from './processors/http'; import { ILocalUser } from '../models/user'; import Logger from '../misc/logger'; +const enableQueue = config.redis != null; + +const queue = new Queue('misskey', { + redis: { + port: config.redis.port, + host: config.redis.host, + password: config.redis.pass + }, + + removeOnSuccess: true, + removeOnFailure: true, + getEvents: false, + sendEvents: false, + storeJobs: false +}); + export function createHttpJob(data: any) { - return http({ data }, () => {}); + if (enableQueue) { + return queue.createJob(data) + .retries(4) + .backoff('exponential', 16384) // 16s + .save(); + } else { + return http({ data }, () => {}); + } } export function deliver(user: ILocalUser, content: any, to: any) { @@ -18,3 +43,9 @@ export function deliver(user: ILocalUser, content: any, to: any) { } export const queueLogger = new Logger('queue'); + +export default function() { + if (enableQueue) { + queue.process(128, http); + } +} -- cgit v1.2.3-freya