]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - scripts/simulate-many-viewers.ts
Optimize broadcast job creation
[github/Chocobozzz/PeerTube.git] / scripts / simulate-many-viewers.ts
index 4ec928aa8501b14b09eb2ae91d08708c5efa8801..fb666c3182c91466aa89419d1e5835e75cf973da 100644 (file)
@@ -1,6 +1,13 @@
 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 }[] = []
@@ -9,6 +16,7 @@ let videoId: string
 run()
   .then(() => process.exit(0))
   .catch(err => console.error(err))
+  .finally(() => killallServers(servers))
 
 async function run () {
   await prepare()
@@ -69,9 +77,13 @@ async function prepare () {
 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 })
 
+  console.log('Finished to run views in %d seconds.', (new Date().getTime() - before) / 1000)
+
   await wait(5000)
 }