Μετάβαση στο περιεχόμενο

Εγκατάσταση

Το anarchon απαιτεί Node.js 20 ή νεότερο.

Εγκαταστήστε το anarchon και τον driver για το store σας. Οι drivers είναι προαιρετικά peer dependencies, επομένως εγκαθιστάτε μόνο αυτόν που χρησιμοποιείτε.

Terminal window
pnpm add anarchon redis

Λειτουργεί με Redis 5 ή νεότερο και με Valkey. Το redis (node-redis) χρειάζεται μόνο αν το anarchon ανοίγει τη σύνδεση για εσάς. Μπορείτε να περάσετε έναν client που διαθέτει ήδη η εφαρμογή σας: ioredis, iovalkey, node-redis ή Valkey GLIDE.

Οι εντολές npm install και yarn add λειτουργούν με τον ίδιο τρόπο.

Χρησιμοποιήστε αυτό που διαθέτει ήδη η υπηρεσία σας. Αν έχετε επιλογή:

Έχετε Χρήση Γιατί
Redis ή Valkey Την προεπιλογή, στρατηγική lease Το πλήρες σύνολο δυνατοτήτων και η χαμηλότερη καθυστέρηση (latency)
PostgreSQL, χωρίς Redis PostgresBackend Το πλήρες σύνολο δυνατοτήτων, χωρίς νέα υποδομή
Ένα μηχάνημα, πολλαπλές διεργασίες SqliteBackend σε αρχείο Κανένας server απολύτως
Μόνο RabbitMQ ή NATS RabbitMQBackend / NatsBackend Ένας νικητής ανά εκτέλεση, αλλά χωρίς backups, προστασία επικάλυψης ή ανάκτηση (catch-up)

Η Επισκόπηση backends τα συγκρίνει αναλυτικά.

Το 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.