tinytick
v1.1.1
Published
A tiny but very useful JavaScript task orchestrator.
Downloads
383
Maintainers
Readme
import {createManager} from 'tinytick';
const manager = createManager().start();
const ping = async (url) => await fetch(url);
manager.setTask('ping', ping);
const taskRunId = manager.scheduleTaskRun(
'ping',
'https://example.com',
);
console.log(manager.getTaskIds());
// -> ['ping']
console.log(manager.getTaskRunInfo(taskRunId));
// -> {taskId: 'ping', arg: 'https://example.com', ...}
manager.setTask(
'ping',
async (url, signal) => await fetch(url, {signal}),
undefined,
{maxDuration: 100}, // milliseconds
);
manager.setTask(
'ping',
async (url, signal) => await fetch(url, {signal}),
undefined, // we'll explain this argument in a moment!
{maxRetries: 3, retryDelay: '1000, 5000, 10000'},
);
manager.setCategory('network', {
maxDuration: 100,
maxRetries: 3,
retryDelay: '1000, 5000, 10000',
});
manager.setTask('ping', ping, 'network', {
maxRetries: 5,
});
manager.scheduleTaskRun('fetchParents');
// -> 'Fetching https://api.org/parents?page=1'
// -> 'Storing parent A'
// -> 'Storing parent B'
// -> 'Fetching https://api.org/children?parentId=A&page=1'
// -> 'Fetching https://api.org/children?parentId=B&page=1'
// -> 'Fetching https://api.org/parents?page=2'