This repository has been archived on 2020-11-02. You can view files and clone it, but cannot push or open issues or pull requests.
2020-11-01 22:46:04 +00:00

77 lines
1.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Worker pool statistics</title>
<style>
body {
width: 600px;
font: 11pt arial;
}
</style>
<script src="../../dist/workerpool.js"></script>
</head>
<body>
<p>
Create some tasks and watch the statistics
</p>
<input type="button" id="sleep2" value="Create a sleep task (2 seconds)">
<input type="button" id="sleep5" value="Create a sleep task (5 seconds)">
<pre>
<code id="stats"></code>
</pre>
<script>
var pool = workerpool.pool({maxWorkers: 4});
// show current stats of the workerpool on screen
function updateStats () {
document.getElementById('stats').innerHTML = JSON.stringify(pool.stats(), null, 2);
}
setInterval(updateStats, 200);
/**
* A dumb task that waits for some time before resolving
* @param {number} duration duration in milliseconds
* @return {Promise}
*/
function sleep (duration) {
return new Promise (function (resolve, reject) {
setTimeout(resolve, duration)
})
}
document.getElementById('sleep2').onclick = function () {
console.log('start sleep(2000)');
pool.exec(sleep, [2000])
.then(function () {
console.log('finished sleep(2000)');
})
.catch(function (err) {
console.error(err);
});
updateStats();
};
document.getElementById('sleep5').onclick = function () {
console.log('start sleep(5000)');
pool.exec(sleep, [5000])
.then(function () {
console.log('finished sleep(5000)');
})
.catch(function (err) {
console.error(err);
});
updateStats();
};
</script>
</body>
</html>