import Bluebird from 'bluebird'
import { wait } from '@shared/core-utils'
-import { createSingleServer, doubleFollow, PeerTubeServer, setAccessTokensToServers, waitJobs } from '@shared/server-commands'
+import {
+ createSingleServer,
+ doubleFollow,
+ killallServers,
+ PeerTubeServer,
+ setAccessTokensToServers,
+ waitJobs
+} from '@shared/server-commands'
let servers: PeerTubeServer[]
const viewers: { xForwardedFor: string }[] = []
run()
.then(() => process.exit(0))
.catch(err => console.error(err))
+ .finally(() => killallServers(servers))
async function run () {
await prepare()
}
}
+ const env = { PRODUCTION_CONSTANTS: 'true' }
+
servers = await Promise.all([
- createSingleServer(1, config, { nodeArgs: [ '--inspect' ] }),
- createSingleServer(2, config),
- createSingleServer(3, config)
+ createSingleServer(1, config, { env, nodeArgs: [ '--inspect' ] }),
+ createSingleServer(2, config, { env }),
+ createSingleServer(3, config, { env })
])
await setAccessTokensToServers(servers)
async function runViewers () {
console.log('Will run views of %d viewers.', viewers.length)
+ const before = new Date().getTime()
+
await Bluebird.map(viewers, viewer => {
return servers[0].views.simulateView({ id: videoId, xForwardedFor: viewer.xForwardedFor })
- }, { concurrency: 100 })
+ }, { concurrency: 500 })
+
+ console.log('Finished to run views in %d seconds.', (new Date().getTime() - before) / 1000)
await wait(5000)
}