]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/lib/worker/workers/http-broadcast.ts
Use worker thread to send HTTP requests
[github/Chocobozzz/PeerTube.git] / server / lib / worker / workers / http-broadcast.ts
1 import { map } from 'bluebird'
2 import { logger } from '@server/helpers/logger'
3 import { doRequest, PeerTubeRequestOptions } from '@server/helpers/requests'
4 import { BROADCAST_CONCURRENCY } from '@server/initializers/constants'
5
6 async function httpBroadcast (payload: {
7 uris: string[]
8 requestOptions: PeerTubeRequestOptions
9 }) {
10 const { uris, requestOptions } = payload
11
12 const badUrls: string[] = []
13 const goodUrls: string[] = []
14
15 await map(uris, async uri => {
16 try {
17 await doRequest(uri, requestOptions)
18 goodUrls.push(uri)
19 } catch (err) {
20 logger.debug('HTTP broadcast to %s failed.', uri, { err })
21 badUrls.push(uri)
22 }
23 }, { concurrency: BROADCAST_CONCURRENCY })
24
25 return { goodUrls, badUrls }
26 }
27
28 module.exports = httpBroadcast
29
30 export {
31 httpBroadcast
32 }