Εγκατάσταση
Το anarchon απαιτεί Node.js 20 ή νεότερο.
Εγκαταστήστε το anarchon και τον driver για το store σας. Οι drivers είναι προαιρετικά peer dependencies, επομένως εγκαθιστάτε μόνο αυτόν που χρησιμοποιείτε.
pnpm add anarchon redisΛειτουργεί με Redis 5 ή νεότερο και με Valkey. Το redis (node-redis) χρειάζεται μόνο αν το anarchon ανοίγει τη
σύνδεση για εσάς. Μπορείτε να περάσετε έναν client που διαθέτει ήδη η εφαρμογή σας: ioredis, iovalkey,
node-redis ή Valkey GLIDE.
pnpm add anarchon pgPostgreSQL 9.5 ή νεότερο. Μπορείτε να περάσετε το δικό σας pg Pool ή Client, ή ένα postgres.js
instance, αντί για ένα connection string.
pnpm add anarchonΔεν χρειάζεται τίποτα άλλο στο Node 22.13 ή νεότερο, το οποίο περιλαμβάνει ενσωματωμένο το node:sqlite. Το Node 22.5 έως 22.12 χρειάζεται το flag --experimental-sqlite. Στο Node 20 προσθέστε το better-sqlite3@12: η έκδοση 13 απαιτεί Node 22.
Για έναν libSQL server ή Turso προσθέστε το @libsql/client.
SQLite 3.35 ή νεότερο.
pnpm add anarchon amqplibRabbitMQ 3.9 ή νεότερο.
pnpm add anarchon @nats-io/transport-node @nats-io/jetstreamΤο JetStream πρέπει να είναι ενεργοποιημένο στον server.
Οι εντολές npm install και yarn add λειτουργούν με τον ίδιο τρόπο.
Ποιο store να επιλέξω;
Ενότητα με τίτλο «Ποιο store να επιλέξω;»Χρησιμοποιήστε αυτό που διαθέτει ήδη η υπηρεσία σας. Αν έχετε επιλογή:
| Έχετε | Χρήση | Γιατί |
|---|---|---|
| Redis ή Valkey | Την προεπιλογή, στρατηγική lease |
Το πλήρες σύνολο δυνατοτήτων και η χαμηλότερη καθυστέρηση (latency) |
| PostgreSQL, χωρίς Redis | PostgresBackend |
Το πλήρες σύνολο δυνατοτήτων, χωρίς νέα υποδομή |
| Ένα μηχάνημα, πολλαπλές διεργασίες | SqliteBackend σε αρχείο |
Κανένας server απολύτως |
| Μόνο RabbitMQ ή NATS | RabbitMQBackend / NatsBackend |
Ένας νικητής ανά εκτέλεση, αλλά χωρίς backups, προστασία επικάλυψης ή ανάκτηση (catch-up) |
Η Επισκόπηση backends τα συγκρίνει αναλυτικά.
Ρύθμιση TypeScript
Ενότητα με τίτλο «Ρύθμιση TypeScript»Το anarchon είναι γραμμένο σε TypeScript και παρέχει τους δικούς του τύπους. Δεν χρειάζεται να εγκαταστήσετε τίποτα επιπλέον.
import { Scheduler, type JobContext, type RunRecord } from 'anarchon';Λειτουργεί επίσης από απλή JavaScript, με require ή import:
const { Scheduler } = require('anarchon');Έλεγχος ότι λειτουργεί
Ενότητα με τίτλο «Έλεγχος ότι λειτουργεί»Αποθηκεύστε αυτό ως check.mjs και εκτελέστε node check.mjs. Χρησιμοποιεί ένα αρχείο SQLite, επομένως δεν χρειάζεται server (Node 22.13 ή νεότερο).
import { Scheduler, SqliteBackend } from 'anarchon';
const scheduler = new Scheduler({ backend: new SqliteBackend({ database: './anarchon.db' }) });scheduler.every('hello', '2s', (ctx) => console.log('hello at', ctx.scheduledAt.toISOString()));
await scheduler.start();setTimeout(() => scheduler.stop(), 7_000);Θα πρέπει να δείτε μία γραμμή κάθε δύο δευτερόλεπτα, και στη συνέχεια η διεργασία τερματίζεται.
Επόμενα βήματα
Ενότητα με τίτλο «Επόμενα βήματα»Η Γρήγορη εκκίνηση δημιουργεί έναν μικρό scheduler και τον εκτελεί ως τρία instances.