Use bee-queue instead of Kue
This commit is contained in:
@ -1,52 +1,36 @@
|
||||
import { createQueue } from 'kue';
|
||||
import * as Queue from 'bee-queue';
|
||||
|
||||
import config from '../config';
|
||||
import http from './processors/http';
|
||||
import { ILocalUser } from '../models/user';
|
||||
|
||||
const queue = createQueue({
|
||||
const queue = new Queue('misskey', {
|
||||
redis: {
|
||||
port: config.redis.port,
|
||||
host: config.redis.host,
|
||||
auth: config.redis.pass
|
||||
}
|
||||
password: config.redis.pass
|
||||
},
|
||||
|
||||
removeOnSuccess: true,
|
||||
removeOnFailure: true
|
||||
});
|
||||
|
||||
process.once('SIGTERM', () => {
|
||||
queue.shutdown(5000, (err: any) => {
|
||||
console.log('Kue shutdown: ', err || '');
|
||||
process.exit(0);
|
||||
});
|
||||
});
|
||||
|
||||
export function createHttp(data: any) {
|
||||
return queue
|
||||
.create('http', data)
|
||||
.removeOnComplete(true)
|
||||
.events(false)
|
||||
.attempts(8)
|
||||
.backoff({ delay: 16384, type: 'exponential' });
|
||||
export function createHttpJob(data: any) {
|
||||
return queue.createJob(data)
|
||||
.retries(4)
|
||||
.backoff('exponential', 16384) // 16s
|
||||
.save();
|
||||
}
|
||||
|
||||
export function deliver(user: ILocalUser, content: any, to: any) {
|
||||
createHttp({
|
||||
title: 'deliver',
|
||||
createHttpJob({
|
||||
type: 'deliver',
|
||||
user,
|
||||
content,
|
||||
to
|
||||
}).save();
|
||||
});
|
||||
}
|
||||
|
||||
export default function() {
|
||||
/*
|
||||
256 is the default concurrency limit of Mozilla Firefox and Google
|
||||
Chromium.
|
||||
a8af215e691f3a2205a3758d2d96e9d328e100ff - chromium/src.git - Git at Google
|
||||
https://chromium.googlesource.com/chromium/src.git/+/a8af215e691f3a2205a3758d2d96e9d328e100ff
|
||||
Network.http.max-connections - MozillaZine Knowledge Base
|
||||
http://kb.mozillazine.org/Network.http.max-connections
|
||||
*/
|
||||
//queue.process('http', 256, http);
|
||||
queue.process('http', 128, http);
|
||||
queue.process(8, http);
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
import * as kue from 'kue';
|
||||
import * as bq from 'bee-queue';
|
||||
|
||||
import request from '../../../remote/activitypub/request';
|
||||
|
||||
export default async (job: kue.Job, done: any): Promise<void> => {
|
||||
export default async (job: bq.Job, done: any): Promise<void> => {
|
||||
try {
|
||||
await request(job.data.user, job.data.to, job.data.content);
|
||||
done();
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as kue from 'kue';
|
||||
import * as bq from 'bee-queue';
|
||||
import * as debug from 'debug';
|
||||
|
||||
const httpSignature = require('http-signature');
|
||||
@ -10,7 +10,7 @@ import { resolvePerson } from '../../../remote/activitypub/models/person';
|
||||
const log = debug('misskey:queue:inbox');
|
||||
|
||||
// ユーザーのinboxにアクティビティが届いた時の処理
|
||||
export default async (job: kue.Job, done: any): Promise<void> => {
|
||||
export default async (job: bq.Job, done: any): Promise<void> => {
|
||||
const signature = job.data.signature;
|
||||
const activity = job.data.activity;
|
||||
|
||||
|
Reference in New Issue
Block a user