https://github.com/akumzy/kroncache-node
Cache manager and job scheduling library for Node.js
https://github.com/akumzy/kroncache-node
cache cachemanager javascript job-scheduler typescript
Last synced: 8 months ago
JSON representation
Cache manager and job scheduling library for Node.js
- Host: GitHub
- URL: https://github.com/akumzy/kroncache-node
- Owner: Akumzy
- License: apache-2.0
- Created: 2020-11-10T21:50:13.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-10-09T17:00:32.000Z (over 3 years ago)
- Last Synced: 2025-08-09T09:39:25.567Z (8 months ago)
- Topics: cache, cachemanager, javascript, job-scheduler, typescript
- Language: TypeScript
- Homepage:
- Size: 86.9 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kroncache-node
kroncache-node is a cache manager and job scheduling [kroncache](https://github.com/Akumzy/kroncache) client for Node.js
**Do know that [kroncache](https://github.com/Akumzy/kroncache) is still under development**
# Installation
Setup [kroncache](https://github.com/Akumzy/kroncache) server
```sh
npm install kroncache
```
# Usage
```js
const Kroncache = require("kroncache");
async function main() {
try {
const kron = new Kroncache({ ttl: 20 });
await kron.connect();
// Save records
// set the ttl to 2 minutes and set the ack to true to notify once it expired
await kron.set("LOKI", { name: "me" }, { ttl: "2 minutes", ack: true });
// Save a record which will expires after the default 20 seconds ttl and it will not notify
await kron.set("AKUMA", [{ name: "me" }, { name: "Akuma" }]);
// Retrieve record
let data = await kron.get("AKUMA");
console.log(data.name);
// Retrieve records keys
let keys = await kron.keys();
console.log(keys);
// Reset/purge database
// await kron.reset();
// Listen for expired/elapsed records
kron.addListener("expired", (payload) => {
console.log("Expired: ", payload);
//Expired: { data: { name: 'me' }, key: 'LOKI' }
});
// Define jobs
kron.define("cron directive expression", (payload) => {
console.log(payload);
});
kron.define("cron expression", (payload) => {
console.log(payload);
});
kron.define("scheduler", (payload) => {
console.log(payload);
});
await kron.cron("cron directive expression", "@every 2s");
await kron.cron("cron expression", "* * * * *");
let sixSeconds = new Date(Date.now() + 6000);
await kron.schedule("scheduler", sixSeconds, { expire: sixSeconds });
} catch (error) {
console.log({ error });
}
}
main();
```