33 lines
805 B
TypeScript
33 lines
805 B
TypeScript
|
import { map } from 'bluebird'
|
||
|
import { logger } from '@server/helpers/logger'
|
||
|
import { doRequest, PeerTubeRequestOptions } from '@server/helpers/requests'
|
||
|
import { BROADCAST_CONCURRENCY } from '@server/initializers/constants'
|
||
|
|
||
|
async function httpBroadcast (payload: {
|
||
|
uris: string[]
|
||
|
requestOptions: PeerTubeRequestOptions
|
||
|
}) {
|
||
|
const { uris, requestOptions } = payload
|
||
|
|
||
|
const badUrls: string[] = []
|
||
|
const goodUrls: string[] = []
|
||
|
|
||
|
await map(uris, async uri => {
|
||
|
try {
|
||
|
await doRequest(uri, requestOptions)
|
||
|
goodUrls.push(uri)
|
||
|
} catch (err) {
|
||
|
logger.debug('HTTP broadcast to %s failed.', uri, { err })
|
||
|
badUrls.push(uri)
|
||
|
}
|
||
|
}, { concurrency: BROADCAST_CONCURRENCY })
|
||
|
|
||
|
return { goodUrls, badUrls }
|
||
|
}
|
||
|
|
||
|
module.exports = httpBroadcast
|
||
|
|
||
|
export {
|
||
|
httpBroadcast
|
||
|
}
|