@workglow/job-queue 0.2.29 → 0.2.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -12
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -91,8 +91,13 @@ The job queue system is split into three main components:
|
|
|
91
91
|
## Quick Start
|
|
92
92
|
|
|
93
93
|
```typescript
|
|
94
|
-
import {
|
|
95
|
-
|
|
94
|
+
import {
|
|
95
|
+
InMemoryQueueStorage,
|
|
96
|
+
Job,
|
|
97
|
+
JobQueueClient,
|
|
98
|
+
JobQueueServer,
|
|
99
|
+
IJobExecuteContext,
|
|
100
|
+
} from "@workglow/job-queue";
|
|
96
101
|
|
|
97
102
|
// 1. Define your input/output types
|
|
98
103
|
interface ProcessTextInput {
|
|
@@ -440,7 +445,7 @@ await client.abortJobRun("batch-001");
|
|
|
440
445
|
### In-Memory Storage
|
|
441
446
|
|
|
442
447
|
```typescript
|
|
443
|
-
import { InMemoryQueueStorage } from "@workglow/
|
|
448
|
+
import { InMemoryQueueStorage } from "@workglow/job-queue";
|
|
444
449
|
|
|
445
450
|
const storage = new InMemoryQueueStorage<Input, Output>("my-queue");
|
|
446
451
|
await storage.setupDatabase();
|
|
@@ -449,7 +454,7 @@ await storage.setupDatabase();
|
|
|
449
454
|
### IndexedDB Storage (Browser)
|
|
450
455
|
|
|
451
456
|
```typescript
|
|
452
|
-
import { IndexedDbQueueStorage } from "@workglow/
|
|
457
|
+
import { IndexedDbQueueStorage } from "@workglow/indexeddb/job-queue";
|
|
453
458
|
|
|
454
459
|
const storage = new IndexedDbQueueStorage<Input, Output>("my-queue");
|
|
455
460
|
await storage.setupDatabase();
|
|
@@ -460,8 +465,8 @@ await storage.setupDatabase();
|
|
|
460
465
|
`SqliteQueueStorage` takes an open **`Sqlite.Database`** instance (not a path string).
|
|
461
466
|
|
|
462
467
|
```typescript
|
|
463
|
-
import { SqliteQueueStorage } from "@workglow/
|
|
464
|
-
import { Sqlite } from "@workglow/storage
|
|
468
|
+
import { SqliteQueueStorage } from "@workglow/sqlite/job-queue";
|
|
469
|
+
import { Sqlite } from "@workglow/sqlite/storage";
|
|
465
470
|
|
|
466
471
|
await Sqlite.init();
|
|
467
472
|
const db = new Sqlite.Database("./jobs.db");
|
|
@@ -472,7 +477,7 @@ await storage.setupDatabase();
|
|
|
472
477
|
### PostgreSQL Storage (Node.js/Bun)
|
|
473
478
|
|
|
474
479
|
```typescript
|
|
475
|
-
import { PostgresQueueStorage } from "@workglow/
|
|
480
|
+
import { PostgresQueueStorage } from "@workglow/postgres/job-queue";
|
|
476
481
|
import { Pool } from "pg";
|
|
477
482
|
|
|
478
483
|
const pool = new Pool({
|
|
@@ -510,8 +515,7 @@ const limiter = new DelayLimiter(500);
|
|
|
510
515
|
### Rate Limiter
|
|
511
516
|
|
|
512
517
|
```typescript
|
|
513
|
-
import { RateLimiter } from "@workglow/job-queue";
|
|
514
|
-
import { InMemoryRateLimiterStorage } from "@workglow/storage";
|
|
518
|
+
import { InMemoryRateLimiterStorage, RateLimiter } from "@workglow/job-queue";
|
|
515
519
|
|
|
516
520
|
// Create storage for the rate limiter
|
|
517
521
|
const rateLimiterStorage = new InMemoryRateLimiterStorage();
|
|
@@ -533,9 +537,9 @@ import {
|
|
|
533
537
|
CompositeLimiter,
|
|
534
538
|
ConcurrencyLimiter,
|
|
535
539
|
DelayLimiter,
|
|
540
|
+
InMemoryRateLimiterStorage,
|
|
536
541
|
RateLimiter,
|
|
537
542
|
} from "@workglow/job-queue";
|
|
538
|
-
import { InMemoryRateLimiterStorage } from "@workglow/storage";
|
|
539
543
|
|
|
540
544
|
// Create storage for the rate limiter
|
|
541
545
|
const rateLimiterStorage = new InMemoryRateLimiterStorage();
|
|
@@ -765,8 +769,13 @@ Example test:
|
|
|
765
769
|
|
|
766
770
|
```typescript
|
|
767
771
|
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
768
|
-
import {
|
|
769
|
-
|
|
772
|
+
import {
|
|
773
|
+
InMemoryQueueStorage,
|
|
774
|
+
Job,
|
|
775
|
+
JobQueueClient,
|
|
776
|
+
JobQueueServer,
|
|
777
|
+
IJobExecuteContext,
|
|
778
|
+
} from "@workglow/job-queue";
|
|
770
779
|
|
|
771
780
|
class TestJob extends Job<{ data: string }, { result: string }> {
|
|
772
781
|
async execute(input: { data: string }, context: IJobExecuteContext) {
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@workglow/job-queue",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"sideEffects": false,
|
|
5
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.30",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/workglow-dev/workglow.git",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@workglow/util": "0.2.
|
|
48
|
+
"@workglow/util": "0.2.30"
|
|
49
49
|
},
|
|
50
50
|
"peerDependenciesMeta": {
|
|
51
51
|
"@workglow/util": {
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@workglow/util": "0.2.
|
|
56
|
+
"@workglow/util": "0.2.30"
|
|
57
57
|
},
|
|
58
58
|
"files": [
|
|
59
59
|
"dist"
|