https://github.com/RReverser/tasks.js
Convenient task scheduler for JavaScript using Web Workers.
https://github.com/RReverser/tasks.js
Last synced: 8 months ago
JSON representation
Convenient task scheduler for JavaScript using Web Workers.
- Host: GitHub
- URL: https://github.com/RReverser/tasks.js
- Owner: RReverser
- Created: 2013-06-17T22:17:36.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-11-08T17:35:10.000Z (about 12 years ago)
- Last Synced: 2025-04-04T20:09:09.384Z (9 months ago)
- Language: JavaScript
- Homepage:
- Size: 129 KB
- Stars: 33
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-list - tasks.js
README
tasks.js
========
Convenient task scheduler for JavaScript using Web Workers.
Usage (check index.html for demo):
```javascript
// setting worker count to 4
var scheduler = new Scheduler(4);
// settings common global var for all workers
scheduler.setVar('prefix', 'result-');
// setting specific global variable in each worker
scheduler.workers.forEach(function (worker, index) {
scheduler.setVar('index', index, worker);
});
// importing external scripts
scheduler.importScripts('test.js');
// same task for everybody - just for demo purposes
function workerTask() {
var start = Date.now();
while (Date.now() - start < 5000);
return prefix + index + (arguments.length ? ' (' + Array.prototype.join.call(arguments) + ')' : '') + suffix;
}
console.time('tasks');
scheduler.executeMany(
{
first: workerTask,
second: workerTask,
third: workerTask,
fourth: workerTask
},
function (results) {
console.timeEnd('tasks');
console.log(results);
}
);
console.time('args');
scheduler.executeForMany(
workerTask,
{
first: [1, 2, 3],
second: [4, 5, 6],
third: [7, 8, 9],
fourth: [10, 11, 12]
},
function (results) {
console.timeEnd('args');
console.log(results);
}
);
```