2.0.13 • Published 3 years ago
unqueue v2.0.13
📏 Unqueue
Unqueue is a simple, zero-config, in-memory queue for async JavaScript tasks. You can use it to sequentially run tasks that return promises, like sending emails or performing networking requests. It automatically retries failed promises too.
Status | |
---|---|
Build | |
Health | |
PRs |
⭐️ Features
- No configuration or databases required (in-memory)
- Automatically retry tasks if they fail
- First-class TypeScript and Node.js 14 support
- No dependencies
💻 Getting started
Install from npm:
npm install unqueue
Create a new instance of the class and use the add
function:
import { Unqueue } from "unqueue";
const queue = new Unqueue();
queue.add(async () => {
// Async function that might throw an error
});
Optionally, you can add metadata for tasks:
// Example helper to fetch and write user details
const userIds = ["anand", "carlo"];
const get = async (userId: string) => {
const { data } = await axios.get(`https://example.com/users/${userId}`);
await fs.writeFile(`${userId}.json`, data);
};
// Error handler that logs the user ID from metadata
const queue = new Unqueue({
onError: ({ metadata, error }) =>
console.log(`Got an error in fetching ${metadata.userId}`, error),
});
userIds.forEach((id) => {
queue.add(() => get(id), { id });
});
You can configure the queue, these are the defaults:
const queue = new Unqueue({
maxAttempts: 3,
debug: false,
ttl: 3600,
onError: ({ task, error }) => console.log(`Error in ${task.name}`, error),
});
📄 License
2.0.13
3 years ago
2.0.12
3 years ago
2.0.11
3 years ago
2.0.10
3 years ago
2.0.9
3 years ago
2.0.8
3 years ago
2.0.7
3 years ago
2.0.6
3 years ago
2.0.5
3 years ago
2.0.4
3 years ago
2.0.3
3 years ago
2.0.2
3 years ago
2.0.1
3 years ago
2.0.0
3 years ago
1.1.3
3 years ago
1.1.2
3 years ago
1.1.1
4 years ago
1.1.0
4 years ago
1.0.0
4 years ago