expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp
+ ).workersVirtualTaskEndTimestamp
).toBeInstanceOf(Array)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp.length
+ ).workersVirtualTaskEndTimestamp.length
).toBe(0)
} else if (
workerChoiceStrategy === WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
{ workerChoiceStrategy: WorkerChoiceStrategies.ROUND_ROBIN }
)
// TODO: Create a better test to cover `RoundRobinWorkerChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
}
- await Promise.all(promises)
// We need to clean up the resources after our test
await pool.destroy()
})
{ workerChoiceStrategy: WorkerChoiceStrategies.ROUND_ROBIN }
)
// TODO: Create a better test to cover `RoundRobinWorkerChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
}
- await Promise.all(promises)
// We need to clean up the resources after our test
await pool.destroy()
})
{ workerChoiceStrategy: WorkerChoiceStrategies.LESS_USED }
)
// TODO: Create a better test to cover `LessUsedWorkerChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
}
- await Promise.all(promises)
// We need to clean up the resources after our test
await pool.destroy()
})
{ workerChoiceStrategy: WorkerChoiceStrategies.LESS_USED }
)
// TODO: Create a better test to cover `LessUsedWorkerChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
}
- await Promise.all(promises)
// We need to clean up the resources after our test
await pool.destroy()
})
{ workerChoiceStrategy: WorkerChoiceStrategies.LESS_BUSY }
)
// TODO: Create a better test to cover `LessBusyWorkerChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
}
- await Promise.all(promises)
// We need to clean up the resources after our test
await pool.destroy()
})
{ workerChoiceStrategy: WorkerChoiceStrategies.LESS_BUSY }
)
// TODO: Create a better test to cover `LessBusyWorkerChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
}
- await Promise.all(promises)
// We need to clean up the resources after our test
await pool.destroy()
})
{ workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE }
)
// TODO: Create a better test to cover `FairShareChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
+ }
+ for (const workerNode of pool.workerNodes) {
+ expect(workerNode.tasksUsage.avgRunTime).toBeDefined()
+ expect(workerNode.tasksUsage.avgRunTime).toBeGreaterThanOrEqual(0)
+ expect(workerNode.tasksUsage.medRunTime).toBeDefined()
+ expect(workerNode.tasksUsage.medRunTime).toBe(0)
}
- await Promise.all(promises)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
pool.workerChoiceStrategyContext.workerChoiceStrategy
- ).workersVirtualTaskTimestamp.length
+ ).workersVirtualTaskEndTimestamp.length
).toBe(pool.workerNodes.length)
// We need to clean up the resources after our test
await pool.destroy()
{ workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE }
)
// TODO: Create a better test to cover `FairShareChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
+ }
+ for (const workerNode of pool.workerNodes) {
+ expect(workerNode.tasksUsage.avgRunTime).toBeDefined()
+ expect(workerNode.tasksUsage.avgRunTime).toBeGreaterThanOrEqual(0)
+ expect(workerNode.tasksUsage.medRunTime).toBeDefined()
+ expect(workerNode.tasksUsage.medRunTime).toBe(0)
}
- await Promise.all(promises)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
pool.workerChoiceStrategyContext.workerChoiceStrategy
- ).workersVirtualTaskTimestamp.length
+ ).workersVirtualTaskEndTimestamp.length
).toBe(pool.workerNodes.length)
// We need to clean up the resources after our test
await pool.destroy()
}
)
// TODO: Create a better test to cover `FairShareChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
}
- await Promise.all(promises)
for (const workerNode of pool.workerNodes) {
expect(workerNode.tasksUsage.avgRunTime).toBeDefined()
expect(workerNode.tasksUsage.avgRunTime).toBe(0)
expect(workerNode.tasksUsage.medRunTime).toBeDefined()
- expect(workerNode.tasksUsage.medRunTime).toBeGreaterThan(0)
+ expect(workerNode.tasksUsage.medRunTime).toBeGreaterThanOrEqual(0)
}
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
pool.workerChoiceStrategyContext.workerChoiceStrategy
- ).workersVirtualTaskTimestamp.length
+ ).workersVirtualTaskEndTimestamp.length
).toBe(pool.workerNodes.length)
// We need to clean up the resources after our test
await pool.destroy()
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp
+ ).workersVirtualTaskEndTimestamp
).toBeInstanceOf(Array)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp.length
+ ).workersVirtualTaskEndTimestamp.length
).toBe(0)
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp[0] = 0
+ ).workersVirtualTaskEndTimestamp[0] = performance.now()
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp.length
+ ).workersVirtualTaskEndTimestamp.length
).toBe(1)
pool.setWorkerChoiceStrategy(workerChoiceStrategy)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp
+ ).workersVirtualTaskEndTimestamp
).toBeInstanceOf(Array)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp.length
+ ).workersVirtualTaskEndTimestamp.length
).toBe(0)
await pool.destroy()
pool = new DynamicThreadPool(
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp
+ ).workersVirtualTaskEndTimestamp
).toBeInstanceOf(Array)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp.length
+ ).workersVirtualTaskEndTimestamp.length
).toBe(0)
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp[0] = 0
+ ).workersVirtualTaskEndTimestamp[0] = performance.now()
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp.length
+ ).workersVirtualTaskEndTimestamp.length
).toBe(1)
pool.setWorkerChoiceStrategy(workerChoiceStrategy)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp
+ ).workersVirtualTaskEndTimestamp
).toBeInstanceOf(Array)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
- ).workersVirtualTaskTimestamp.length
+ ).workersVirtualTaskEndTimestamp.length
).toBe(0)
// We need to clean up the resources after our test
await pool.destroy()
{ workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN }
)
// TODO: Create a better test to cover `WeightedRoundRobinWorkerChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
+ }
+ for (const workerNode of pool.workerNodes) {
+ expect(workerNode.tasksUsage.avgRunTime).toBeDefined()
+ expect(workerNode.tasksUsage.avgRunTime).toBeGreaterThanOrEqual(0)
+ expect(workerNode.tasksUsage.medRunTime).toBeDefined()
+ expect(workerNode.tasksUsage.medRunTime).toBe(0)
}
- await Promise.all(promises)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
pool.workerChoiceStrategyContext.workerChoiceStrategy
{ workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN }
)
// TODO: Create a better test to cover `WeightedRoundRobinWorkerChoiceStrategy#choose`
- const promises = []
- const maxMultiplier =
- pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
- pool.workerChoiceStrategyContext.workerChoiceStrategy
- ).defaultWorkerWeight * 50
+ const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
+ }
+ for (const workerNode of pool.workerNodes) {
+ expect(workerNode.tasksUsage.avgRunTime).toBeDefined()
+ expect(workerNode.tasksUsage.avgRunTime).toBeGreaterThanOrEqual(0)
+ expect(workerNode.tasksUsage.medRunTime).toBeDefined()
+ expect(workerNode.tasksUsage.medRunTime).toBe(0)
}
- await Promise.all(promises)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
pool.workerChoiceStrategyContext.workerChoiceStrategy
}
)
// TODO: Create a better test to cover `WeightedRoundRobinWorkerChoiceStrategy#choose`
- const promises = []
const maxMultiplier = 2
for (let i = 0; i < max * maxMultiplier; i++) {
- promises.push(pool.execute())
+ await pool.execute()
}
- await Promise.all(promises)
for (const workerNode of pool.workerNodes) {
expect(workerNode.tasksUsage.avgRunTime).toBeDefined()
expect(workerNode.tasksUsage.avgRunTime).toBe(0)
expect(workerNode.tasksUsage.medRunTime).toBeDefined()
- expect(workerNode.tasksUsage.medRunTime).toBeGreaterThan(0)
+ expect(workerNode.tasksUsage.medRunTime).toBeGreaterThanOrEqual(0)
}
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(