From f55e5a7bf81c2c27db1514273e3366511aabf4ae Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 18 Apr 2018 16:04:49 +0200 Subject: Process broadcast requests in parallel --- .../job-queue/handlers/activitypub-http-broadcast.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'server/lib') diff --git a/server/lib/job-queue/handlers/activitypub-http-broadcast.ts b/server/lib/job-queue/handlers/activitypub-http-broadcast.ts index 78878fc01..38b8393f4 100644 --- a/server/lib/job-queue/handlers/activitypub-http-broadcast.ts +++ b/server/lib/job-queue/handlers/activitypub-http-broadcast.ts @@ -1,8 +1,10 @@ import * as kue from 'kue' +import * as Bluebird from 'bluebird' import { logger } from '../../../helpers/logger' import { doRequest } from '../../../helpers/requests' import { ActorFollowModel } from '../../../models/activitypub/actor-follow' import { buildSignedRequestOptions, computeBody } from './utils/activitypub-http-utils' +import { BROADCAST_CONCURRENCY } from '../../../initializers' export type ActivitypubHttpBroadcastPayload = { uris: string[] @@ -28,16 +30,11 @@ async function processActivityPubHttpBroadcast (job: kue.Job) { const badUrls: string[] = [] const goodUrls: string[] = [] - for (const uri of payload.uris) { - options.uri = uri - - try { - await doRequest(options) - goodUrls.push(uri) - } catch (err) { - badUrls.push(uri) - } - } + await Bluebird.map(payload.uris, uri => { + return doRequest(Object.assign({}, options, { uri })) + .then(() => goodUrls.push(uri)) + .catch(() => badUrls.push(uri)) + }, { concurrency: BROADCAST_CONCURRENCY }) return ActorFollowModel.updateActorFollowsScore(goodUrls, badUrls, undefined) } -- cgit v1.2.3