X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fjob-queue%2Fhandlers%2Factivitypub-http-broadcast.ts;h=fbf01d2768f92ccd2ce2e6d2754d448fbecc9203;hb=51353d9a035fb6b81f903a8b5f391292841649fd;hp=c69ff9e83fd2dcf5a920e51c47ad55a7d15ae66e;hpb=a786d8a08bf99f339bf16808f46e160404497ae2;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/job-queue/handlers/activitypub-http-broadcast.ts b/server/lib/job-queue/handlers/activitypub-http-broadcast.ts index c69ff9e83..fbf01d276 100644 --- a/server/lib/job-queue/handlers/activitypub-http-broadcast.ts +++ b/server/lib/job-queue/handlers/activitypub-http-broadcast.ts @@ -1,13 +1,13 @@ -import * as Bluebird from 'bluebird' -import * as Bull from 'bull' +import { map } from 'bluebird' +import { Job } from 'bull' +import { ActorFollowHealthCache } from '@server/lib/actor-follow-health-cache' import { ActivitypubHttpBroadcastPayload } from '@shared/models' import { logger } from '../../../helpers/logger' import { doRequest } from '../../../helpers/requests' -import { BROADCAST_CONCURRENCY, REQUEST_TIMEOUT } from '../../../initializers/constants' -import { ActorFollowScoreCache } from '../../files-cache' +import { BROADCAST_CONCURRENCY } from '../../../initializers/constants' import { buildGlobalHeaders, buildSignedRequestOptions, computeBody } from './utils/activitypub-http-utils' -async function processActivityPubHttpBroadcast (job: Bull.Job) { +async function processActivityPubHttpBroadcast (job: Job) { logger.info('Processing ActivityPub broadcast in job %d.', job.id) const payload = job.data as ActivitypubHttpBroadcastPayload @@ -19,20 +19,23 @@ async function processActivityPubHttpBroadcast (job: Bull.Job) { method: 'POST' as 'POST', json: body, httpSignature: httpSignatureOptions, - timeout: REQUEST_TIMEOUT, headers: buildGlobalHeaders(body) } const badUrls: string[] = [] const goodUrls: string[] = [] - await Bluebird.map(payload.uris, uri => { - return doRequest(uri, options) - .then(() => goodUrls.push(uri)) - .catch(() => badUrls.push(uri)) + await map(payload.uris, async uri => { + try { + await doRequest(uri, options) + goodUrls.push(uri) + } catch (err) { + logger.debug('HTTP broadcast to %s failed.', uri, { err }) + badUrls.push(uri) + } }, { concurrency: BROADCAST_CONCURRENCY }) - return ActorFollowScoreCache.Instance.updateActorFollowsScore(goodUrls, badUrls) + return ActorFollowHealthCache.Instance.updateActorFollowsHealth(goodUrls, badUrls) } // ---------------------------------------------------------------------------