summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-07-26 08:11:47 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-07-26 08:11:47 +0900
commit77b493c9b065a7af7533e718f8623f810e65341a (patch)
tree0830dd5f4accae60d7920417af2026830eb884e8 /src
parent:v: (diff)
downloadmisskey-77b493c9b065a7af7533e718f8623f810e65341a.tar.gz
misskey-77b493c9b065a7af7533e718f8623f810e65341a.tar.bz2
misskey-77b493c9b065a7af7533e718f8623f810e65341a.zip
Use bee-queue instead of Kue
Diffstat (limited to 'src')
-rw-r--r--src/index.ts3
-rw-r--r--src/queue/index.ts44
-rw-r--r--src/queue/processors/http/deliver.ts4
-rw-r--r--src/queue/processors/http/process-inbox.ts4
-rw-r--r--src/server/activitypub.ts6
5 files changed, 21 insertions, 40 deletions
diff --git a/src/index.ts b/src/index.ts
index 675f862b6f..7545c82c74 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -31,9 +31,6 @@ if (process.env.NODE_ENV != 'production') {
process.env.DEBUG = 'misskey:*';
}
-// https://github.com/Automattic/kue/issues/822
-require('events').EventEmitter.prototype._maxListeners = 512;
-
// Start app
main();
diff --git a/src/queue/index.ts b/src/queue/index.ts
index 53853687d7..6f82d0a8b5 100644
--- a/src/queue/index.ts
+++ b/src/queue/index.ts
@@ -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
+ },
-process.once('SIGTERM', () => {
- queue.shutdown(5000, (err: any) => {
- console.log('Kue shutdown: ', err || '');
- process.exit(0);
- });
+ removeOnSuccess: true,
+ removeOnFailure: true
});
-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);
}
diff --git a/src/queue/processors/http/deliver.ts b/src/queue/processors/http/deliver.ts
index 946d2f65bd..e06866da4e 100644
--- a/src/queue/processors/http/deliver.ts
+++ b/src/queue/processors/http/deliver.ts
@@ -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();
diff --git a/src/queue/processors/http/process-inbox.ts b/src/queue/processors/http/process-inbox.ts
index 7b62f057bc..0738853dd1 100644
--- a/src/queue/processors/http/process-inbox.ts
+++ b/src/queue/processors/http/process-inbox.ts
@@ -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;
diff --git a/src/server/activitypub.ts b/src/server/activitypub.ts
index 17cd34ee6f..2d9a4746c6 100644
--- a/src/server/activitypub.ts
+++ b/src/server/activitypub.ts
@@ -3,7 +3,7 @@ import * as Router from 'koa-router';
const json = require('koa-json-body');
const httpSignature = require('http-signature');
-import { createHttp } from '../queue';
+import { createHttpJob } from '../queue';
import pack from '../remote/activitypub/renderer';
import Note from '../models/note';
import User, { isLocalUser, ILocalUser, IUser } from '../models/user';
@@ -30,11 +30,11 @@ function inbox(ctx: Router.IRouterContext) {
return;
}
- createHttp({
+ createHttpJob({
type: 'processInbox',
activity: ctx.request.body,
signature
- }).save();
+ });
ctx.status = 202;
}