convex-batch-processor 1.0.5 → 1.0.7
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 +3 -3
- package/dist/component/lib.d.ts +6 -1
- package/dist/component/lib.d.ts.map +1 -1
- package/dist/component/lib.js +60 -23
- package/dist/component/lib.js.map +1 -1
- package/package.json +1 -1
- package/src/component/lib.ts +76 -29
package/README.md
CHANGED
|
@@ -31,8 +31,8 @@ export default app;
|
|
|
31
31
|
### Batch Accumulator
|
|
32
32
|
|
|
33
33
|
The batch accumulator collects items and flushes them based on:
|
|
34
|
-
- **
|
|
35
|
-
- **
|
|
34
|
+
- **Time interval**: Flush automatically after `flushIntervalMs` (primary trigger for high-throughput small items)
|
|
35
|
+
- **Size threshold**: Immediate flush when a single call adds `>= maxBatchSize` items
|
|
36
36
|
- **Manual trigger**: Force flush via API call
|
|
37
37
|
|
|
38
38
|
```typescript
|
|
@@ -287,7 +287,7 @@ Returned by `addItems()`:
|
|
|
287
287
|
```typescript
|
|
288
288
|
interface BatchResult {
|
|
289
289
|
batchId: string; // Same ID you passed in
|
|
290
|
-
itemCount: number; //
|
|
290
|
+
itemCount: number; // Items added in THIS call (use getBatchStatus for total)
|
|
291
291
|
flushed: boolean; // Whether batch was flushed
|
|
292
292
|
status: BatchStatus; // "accumulating" | "flushing" | "completed"
|
|
293
293
|
}
|
package/dist/component/lib.d.ts
CHANGED
|
@@ -106,6 +106,7 @@ export declare const collectBatchItems: import("convex/server").RegisteredQuery<
|
|
|
106
106
|
type FlushTransitionResult = {
|
|
107
107
|
flushed: true;
|
|
108
108
|
itemCount: number;
|
|
109
|
+
processBatchHandle: string;
|
|
109
110
|
} | {
|
|
110
111
|
flushed: false;
|
|
111
112
|
reason: string;
|
|
@@ -160,7 +161,11 @@ export declare const maybeFlush: import("convex/server").RegisteredAction<"inter
|
|
|
160
161
|
*
|
|
161
162
|
* - Returns early if batch is already flushing/completed (another caller won the race)
|
|
162
163
|
* - Returns early if batch is empty or below threshold (unless force=true)
|
|
163
|
-
* - On success, atomically updates status and
|
|
164
|
+
* - On success, atomically updates status and returns processBatchHandle for caller to execute
|
|
165
|
+
*
|
|
166
|
+
* Note: This mutation returns the processBatchHandle instead of scheduling executeFlush.
|
|
167
|
+
* The calling action (maybeFlush) is responsible for calling executeFlush directly.
|
|
168
|
+
* This design avoids issues with scheduling actions from within component mutations.
|
|
164
169
|
*
|
|
165
170
|
* OCC (Optimistic Concurrency Control) note:
|
|
166
171
|
* If two doFlushTransition calls race, Convex detects the conflict when both try to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;GA8FnB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;GAwDrB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;gBA6CE,cAAc,GAAG,UAAU;;;;;;;;;UAiBtD,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;KAiCjC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;KAiB1B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;GAuCtB,CAAC;AAMH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;UAQnB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;GA0B5B,CAAC;AAGH,KAAK,qBAAqB,GACvB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,UAAU;;;iBA6BrB,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB;;;kCAmE5B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;GAmDvB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;iBAgH5B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;iBASjC,CAAC;AAMH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;GA8C3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;GAsB3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;GAyB5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;GAuB5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;UA2B/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;KAmC3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;GAmB5B,CAAC;AAMH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;UAQzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;UAK7B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;eAGhB,OAAO;WACX,OAAO;qBACG,MAAM;aACd,MAAM;YACP,MAAM;iBACD,MAAM;GA+FnB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAc5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAY3B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;iBAcxB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;iBAa9B,CAAC"}
|
package/dist/component/lib.js
CHANGED
|
@@ -47,7 +47,7 @@ export const addItems = mutation({
|
|
|
47
47
|
batch = (await ctx.db.get(batchDocId));
|
|
48
48
|
// Schedule timer at creation (not on every add)
|
|
49
49
|
if (config.flushIntervalMs > 0) {
|
|
50
|
-
const scheduledFlushId = await ctx.scheduler.runAfter(config.flushIntervalMs, internal.lib.
|
|
50
|
+
const scheduledFlushId = await ctx.scheduler.runAfter(config.flushIntervalMs, internal.lib.maybeFlush, { batchDocId: batch._id, force: true });
|
|
51
51
|
await ctx.db.patch(batch._id, { scheduledFlushId });
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -58,24 +58,28 @@ export const addItems = mutation({
|
|
|
58
58
|
itemCount: items.length,
|
|
59
59
|
createdAt: now,
|
|
60
60
|
});
|
|
61
|
-
// 4.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
|
|
61
|
+
// 4. Schedule flush check ONLY if this single call could complete a batch
|
|
62
|
+
// DO NOT query batchItems to count - that causes OCC conflicts when
|
|
63
|
+
// multiple concurrent addItems all read the same index.
|
|
64
|
+
//
|
|
65
|
+
// Dual-trigger pattern:
|
|
66
|
+
// - SIZE trigger: items.length >= maxBatchSize (handled here)
|
|
67
|
+
// - TIME trigger: flushIntervalMs timer (scheduled at batch creation)
|
|
68
|
+
//
|
|
69
|
+
// For high-throughput small items, the interval timer handles flushing.
|
|
70
|
+
// For large single calls, we trigger immediate flush check.
|
|
71
|
+
if (items.length >= config.maxBatchSize) {
|
|
70
72
|
await ctx.scheduler.runAfter(0, internal.lib.maybeFlush, {
|
|
71
73
|
batchDocId: batch._id,
|
|
72
74
|
});
|
|
73
75
|
}
|
|
74
|
-
//
|
|
76
|
+
// 5. Return success - NO PATCH, NO COUNT QUERY!
|
|
77
|
+
// We return the count of items added in THIS call only.
|
|
78
|
+
// Total count can be obtained via getBatchStatus query if needed.
|
|
75
79
|
return {
|
|
76
80
|
batchId: baseBatchId,
|
|
77
|
-
itemCount:
|
|
78
|
-
flushed: false, //
|
|
81
|
+
itemCount: items.length,
|
|
82
|
+
flushed: false, // Flush happens via interval timer or large batch detection
|
|
79
83
|
status: "accumulating",
|
|
80
84
|
};
|
|
81
85
|
},
|
|
@@ -333,13 +337,25 @@ export const maybeFlush = internalAction({
|
|
|
333
337
|
force: v.optional(v.boolean()),
|
|
334
338
|
},
|
|
335
339
|
handler: async (ctx, { batchDocId, force }) => {
|
|
340
|
+
console.log("[maybeFlush] START", { batchDocId, force });
|
|
336
341
|
// Call the mutation directly - Convex handles OCC retries automatically.
|
|
337
342
|
// If another maybeFlush already transitioned this batch, the mutation
|
|
338
343
|
// returns { flushed: false, reason: "not_accumulating" } which is fine.
|
|
339
|
-
await ctx.runMutation(internal.lib.doFlushTransition, {
|
|
344
|
+
const result = await ctx.runMutation(internal.lib.doFlushTransition, {
|
|
340
345
|
batchDocId,
|
|
341
346
|
force: force ?? false,
|
|
342
347
|
});
|
|
348
|
+
console.log("[maybeFlush] doFlushTransition result", result);
|
|
349
|
+
// If the transition succeeded, execute the flush directly
|
|
350
|
+
// (Scheduling from mutation was unreliable in component context)
|
|
351
|
+
if (result.flushed) {
|
|
352
|
+
console.log("[maybeFlush] Calling executeFlush directly");
|
|
353
|
+
await ctx.runAction(internal.lib.executeFlush, {
|
|
354
|
+
batchDocId,
|
|
355
|
+
processBatchHandle: result.processBatchHandle,
|
|
356
|
+
});
|
|
357
|
+
console.log("[maybeFlush] executeFlush completed");
|
|
358
|
+
}
|
|
343
359
|
},
|
|
344
360
|
});
|
|
345
361
|
/**
|
|
@@ -350,7 +366,11 @@ export const maybeFlush = internalAction({
|
|
|
350
366
|
*
|
|
351
367
|
* - Returns early if batch is already flushing/completed (another caller won the race)
|
|
352
368
|
* - Returns early if batch is empty or below threshold (unless force=true)
|
|
353
|
-
* - On success, atomically updates status and
|
|
369
|
+
* - On success, atomically updates status and returns processBatchHandle for caller to execute
|
|
370
|
+
*
|
|
371
|
+
* Note: This mutation returns the processBatchHandle instead of scheduling executeFlush.
|
|
372
|
+
* The calling action (maybeFlush) is responsible for calling executeFlush directly.
|
|
373
|
+
* This design avoids issues with scheduling actions from within component mutations.
|
|
354
374
|
*
|
|
355
375
|
* OCC (Optimistic Concurrency Control) note:
|
|
356
376
|
* If two doFlushTransition calls race, Convex detects the conflict when both try to
|
|
@@ -363,10 +383,17 @@ export const doFlushTransition = internalMutation({
|
|
|
363
383
|
force: v.optional(v.boolean()),
|
|
364
384
|
},
|
|
365
385
|
handler: async (ctx, { batchDocId, force }) => {
|
|
386
|
+
console.log("[doFlushTransition] START", { batchDocId, force });
|
|
366
387
|
const batch = await ctx.db.get(batchDocId);
|
|
388
|
+
console.log("[doFlushTransition] Batch state", {
|
|
389
|
+
exists: !!batch,
|
|
390
|
+
status: batch?.status,
|
|
391
|
+
scheduledFlushId: batch?.scheduledFlushId
|
|
392
|
+
});
|
|
367
393
|
// Already flushing or completed? Nothing to do. This handles the race condition
|
|
368
394
|
// where multiple maybeFlush calls are scheduled - the first one wins.
|
|
369
395
|
if (!batch || batch.status !== "accumulating") {
|
|
396
|
+
console.log("[doFlushTransition] EARLY RETURN - not_accumulating");
|
|
370
397
|
return { flushed: false, reason: "not_accumulating" };
|
|
371
398
|
}
|
|
372
399
|
// Check actual count from batchItems
|
|
@@ -375,16 +402,20 @@ export const doFlushTransition = internalMutation({
|
|
|
375
402
|
.withIndex("by_batchDocId", (q) => q.eq("batchDocId", batchDocId))
|
|
376
403
|
.collect();
|
|
377
404
|
const totalCount = batchItemDocs.reduce((sum, doc) => sum + doc.itemCount, 0);
|
|
405
|
+
console.log("[doFlushTransition] Item count", { totalCount, batchItemDocs: batchItemDocs.length });
|
|
378
406
|
// Empty batch? Nothing to flush.
|
|
379
407
|
if (totalCount === 0) {
|
|
408
|
+
console.log("[doFlushTransition] EARLY RETURN - empty");
|
|
380
409
|
return { flushed: false, reason: "empty" };
|
|
381
410
|
}
|
|
382
411
|
// Not at threshold? Skip only if not forced (interval flush uses force=true).
|
|
383
412
|
if (!force && totalCount < batch.config.maxBatchSize) {
|
|
413
|
+
console.log("[doFlushTransition] EARLY RETURN - below_threshold");
|
|
384
414
|
return { flushed: false, reason: "below_threshold" };
|
|
385
415
|
}
|
|
386
416
|
// Cancel scheduled timer if exists
|
|
387
417
|
if (batch.scheduledFlushId) {
|
|
418
|
+
console.log("[doFlushTransition] Cancelling scheduled timer", batch.scheduledFlushId);
|
|
388
419
|
await ctx.scheduler.cancel(batch.scheduledFlushId);
|
|
389
420
|
}
|
|
390
421
|
// Transition to flushing
|
|
@@ -395,12 +426,15 @@ export const doFlushTransition = internalMutation({
|
|
|
395
426
|
lastUpdatedAt: now,
|
|
396
427
|
scheduledFlushId: undefined,
|
|
397
428
|
});
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
429
|
+
console.log("[doFlushTransition] Patched batch to flushing");
|
|
430
|
+
// Return the processBatchHandle so maybeFlush can call executeFlush directly
|
|
431
|
+
// (Scheduling from mutation was unreliable in component context)
|
|
432
|
+
console.log("[doFlushTransition] Returning processBatchHandle for direct execution");
|
|
433
|
+
return {
|
|
434
|
+
flushed: true,
|
|
435
|
+
itemCount: totalCount,
|
|
436
|
+
processBatchHandle: batch.config.processBatchHandle
|
|
437
|
+
};
|
|
404
438
|
},
|
|
405
439
|
});
|
|
406
440
|
export const executeFlush = internalAction({
|
|
@@ -409,13 +443,16 @@ export const executeFlush = internalAction({
|
|
|
409
443
|
processBatchHandle: v.string(),
|
|
410
444
|
},
|
|
411
445
|
handler: async (ctx, { batchDocId, processBatchHandle }) => {
|
|
446
|
+
console.log("[executeFlush] ENTERED", { batchDocId, processBatchHandle });
|
|
412
447
|
const startTime = Date.now();
|
|
413
448
|
let success = true;
|
|
414
449
|
let errorMessage;
|
|
415
450
|
// Collect items from batchItems table
|
|
451
|
+
console.log("[executeFlush] Collecting batch items...");
|
|
416
452
|
const { items, flushStartedAt } = await ctx.runQuery(internal.lib.collectBatchItems, {
|
|
417
453
|
batchDocId,
|
|
418
454
|
});
|
|
455
|
+
console.log("[executeFlush] Collected items", { count: items.length });
|
|
419
456
|
if (items.length === 0) {
|
|
420
457
|
await ctx.runMutation(internal.lib.recordFlushResult, {
|
|
421
458
|
batchDocId,
|
|
@@ -496,7 +533,7 @@ export const recordFlushResult = internalMutation({
|
|
|
496
533
|
}
|
|
497
534
|
else if (batch.config.flushIntervalMs > 0) {
|
|
498
535
|
// Re-schedule interval timer
|
|
499
|
-
const scheduledFlushId = await ctx.scheduler.runAfter(batch.config.flushIntervalMs, internal.lib.
|
|
536
|
+
const scheduledFlushId = await ctx.scheduler.runAfter(batch.config.flushIntervalMs, internal.lib.maybeFlush, { batchDocId, force: true });
|
|
500
537
|
await ctx.db.patch(batchDocId, { scheduledFlushId });
|
|
501
538
|
}
|
|
502
539
|
}
|
|
@@ -532,7 +569,7 @@ export const recordFlushResult = internalMutation({
|
|
|
532
569
|
// Failure case - revert to accumulating
|
|
533
570
|
let scheduledFlushId = undefined;
|
|
534
571
|
if (batch.config.flushIntervalMs > 0 && batch.config.processBatchHandle) {
|
|
535
|
-
scheduledFlushId = await ctx.scheduler.runAfter(batch.config.flushIntervalMs, internal.lib.
|
|
572
|
+
scheduledFlushId = await ctx.scheduler.runAfter(batch.config.flushIntervalMs, internal.lib.maybeFlush, { batchDocId, force: true });
|
|
536
573
|
}
|
|
537
574
|
await ctx.db.patch(batchDocId, {
|
|
538
575
|
status: "accumulating",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/component/lib.ts
CHANGED
|
@@ -10,6 +10,13 @@ import type { Doc } from "./_generated/dataModel";
|
|
|
10
10
|
import { v } from "convex/values";
|
|
11
11
|
import { FunctionHandle } from "convex/server";
|
|
12
12
|
|
|
13
|
+
// Declare console for TypeScript (available at runtime in Convex)
|
|
14
|
+
declare const console: {
|
|
15
|
+
log: (...args: unknown[]) => void;
|
|
16
|
+
error: (...args: unknown[]) => void;
|
|
17
|
+
warn: (...args: unknown[]) => void;
|
|
18
|
+
};
|
|
19
|
+
|
|
13
20
|
// ============================================================================
|
|
14
21
|
// Batch Accumulator - Public API
|
|
15
22
|
// ============================================================================
|
|
@@ -67,8 +74,8 @@ export const addItems = mutation({
|
|
|
67
74
|
if (config.flushIntervalMs > 0) {
|
|
68
75
|
const scheduledFlushId = await ctx.scheduler.runAfter(
|
|
69
76
|
config.flushIntervalMs,
|
|
70
|
-
internal.lib.
|
|
71
|
-
{ batchDocId: batch._id }
|
|
77
|
+
internal.lib.maybeFlush,
|
|
78
|
+
{ batchDocId: batch._id, force: true }
|
|
72
79
|
);
|
|
73
80
|
await ctx.db.patch(batch._id, { scheduledFlushId });
|
|
74
81
|
}
|
|
@@ -82,26 +89,29 @@ export const addItems = mutation({
|
|
|
82
89
|
createdAt: now,
|
|
83
90
|
});
|
|
84
91
|
|
|
85
|
-
// 4.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
//
|
|
93
|
-
//
|
|
94
|
-
|
|
92
|
+
// 4. Schedule flush check ONLY if this single call could complete a batch
|
|
93
|
+
// DO NOT query batchItems to count - that causes OCC conflicts when
|
|
94
|
+
// multiple concurrent addItems all read the same index.
|
|
95
|
+
//
|
|
96
|
+
// Dual-trigger pattern:
|
|
97
|
+
// - SIZE trigger: items.length >= maxBatchSize (handled here)
|
|
98
|
+
// - TIME trigger: flushIntervalMs timer (scheduled at batch creation)
|
|
99
|
+
//
|
|
100
|
+
// For high-throughput small items, the interval timer handles flushing.
|
|
101
|
+
// For large single calls, we trigger immediate flush check.
|
|
102
|
+
if (items.length >= config.maxBatchSize) {
|
|
95
103
|
await ctx.scheduler.runAfter(0, internal.lib.maybeFlush, {
|
|
96
104
|
batchDocId: batch._id,
|
|
97
105
|
});
|
|
98
106
|
}
|
|
99
107
|
|
|
100
|
-
//
|
|
108
|
+
// 5. Return success - NO PATCH, NO COUNT QUERY!
|
|
109
|
+
// We return the count of items added in THIS call only.
|
|
110
|
+
// Total count can be obtained via getBatchStatus query if needed.
|
|
101
111
|
return {
|
|
102
112
|
batchId: baseBatchId,
|
|
103
|
-
itemCount:
|
|
104
|
-
flushed: false, //
|
|
113
|
+
itemCount: items.length,
|
|
114
|
+
flushed: false, // Flush happens via interval timer or large batch detection
|
|
105
115
|
status: "accumulating",
|
|
106
116
|
};
|
|
107
117
|
},
|
|
@@ -368,7 +378,7 @@ export const collectBatchItems = internalQuery({
|
|
|
368
378
|
|
|
369
379
|
// Type for flush transition result
|
|
370
380
|
type FlushTransitionResult =
|
|
371
|
-
| { flushed: true; itemCount: number }
|
|
381
|
+
| { flushed: true; itemCount: number; processBatchHandle: string }
|
|
372
382
|
| { flushed: false; reason: string };
|
|
373
383
|
|
|
374
384
|
/**
|
|
@@ -415,13 +425,28 @@ export const maybeFlush = internalAction({
|
|
|
415
425
|
force: v.optional(v.boolean()),
|
|
416
426
|
},
|
|
417
427
|
handler: async (ctx, { batchDocId, force }): Promise<void> => {
|
|
428
|
+
console.log("[maybeFlush] START", { batchDocId, force });
|
|
429
|
+
|
|
418
430
|
// Call the mutation directly - Convex handles OCC retries automatically.
|
|
419
431
|
// If another maybeFlush already transitioned this batch, the mutation
|
|
420
432
|
// returns { flushed: false, reason: "not_accumulating" } which is fine.
|
|
421
|
-
await ctx.runMutation(internal.lib.doFlushTransition, {
|
|
433
|
+
const result = await ctx.runMutation(internal.lib.doFlushTransition, {
|
|
422
434
|
batchDocId,
|
|
423
435
|
force: force ?? false,
|
|
424
436
|
});
|
|
437
|
+
|
|
438
|
+
console.log("[maybeFlush] doFlushTransition result", result);
|
|
439
|
+
|
|
440
|
+
// If the transition succeeded, execute the flush directly
|
|
441
|
+
// (Scheduling from mutation was unreliable in component context)
|
|
442
|
+
if (result.flushed) {
|
|
443
|
+
console.log("[maybeFlush] Calling executeFlush directly");
|
|
444
|
+
await ctx.runAction(internal.lib.executeFlush, {
|
|
445
|
+
batchDocId,
|
|
446
|
+
processBatchHandle: result.processBatchHandle,
|
|
447
|
+
});
|
|
448
|
+
console.log("[maybeFlush] executeFlush completed");
|
|
449
|
+
}
|
|
425
450
|
},
|
|
426
451
|
});
|
|
427
452
|
|
|
@@ -433,7 +458,11 @@ export const maybeFlush = internalAction({
|
|
|
433
458
|
*
|
|
434
459
|
* - Returns early if batch is already flushing/completed (another caller won the race)
|
|
435
460
|
* - Returns early if batch is empty or below threshold (unless force=true)
|
|
436
|
-
* - On success, atomically updates status and
|
|
461
|
+
* - On success, atomically updates status and returns processBatchHandle for caller to execute
|
|
462
|
+
*
|
|
463
|
+
* Note: This mutation returns the processBatchHandle instead of scheduling executeFlush.
|
|
464
|
+
* The calling action (maybeFlush) is responsible for calling executeFlush directly.
|
|
465
|
+
* This design avoids issues with scheduling actions from within component mutations.
|
|
437
466
|
*
|
|
438
467
|
* OCC (Optimistic Concurrency Control) note:
|
|
439
468
|
* If two doFlushTransition calls race, Convex detects the conflict when both try to
|
|
@@ -446,11 +475,19 @@ export const doFlushTransition = internalMutation({
|
|
|
446
475
|
force: v.optional(v.boolean()),
|
|
447
476
|
},
|
|
448
477
|
handler: async (ctx, { batchDocId, force }): Promise<FlushTransitionResult> => {
|
|
478
|
+
console.log("[doFlushTransition] START", { batchDocId, force });
|
|
479
|
+
|
|
449
480
|
const batch = await ctx.db.get(batchDocId);
|
|
481
|
+
console.log("[doFlushTransition] Batch state", {
|
|
482
|
+
exists: !!batch,
|
|
483
|
+
status: batch?.status,
|
|
484
|
+
scheduledFlushId: batch?.scheduledFlushId
|
|
485
|
+
});
|
|
450
486
|
|
|
451
487
|
// Already flushing or completed? Nothing to do. This handles the race condition
|
|
452
488
|
// where multiple maybeFlush calls are scheduled - the first one wins.
|
|
453
489
|
if (!batch || batch.status !== "accumulating") {
|
|
490
|
+
console.log("[doFlushTransition] EARLY RETURN - not_accumulating");
|
|
454
491
|
return { flushed: false, reason: "not_accumulating" };
|
|
455
492
|
}
|
|
456
493
|
|
|
@@ -460,19 +497,23 @@ export const doFlushTransition = internalMutation({
|
|
|
460
497
|
.withIndex("by_batchDocId", (q) => q.eq("batchDocId", batchDocId))
|
|
461
498
|
.collect();
|
|
462
499
|
const totalCount = batchItemDocs.reduce((sum, doc) => sum + doc.itemCount, 0);
|
|
500
|
+
console.log("[doFlushTransition] Item count", { totalCount, batchItemDocs: batchItemDocs.length });
|
|
463
501
|
|
|
464
502
|
// Empty batch? Nothing to flush.
|
|
465
503
|
if (totalCount === 0) {
|
|
504
|
+
console.log("[doFlushTransition] EARLY RETURN - empty");
|
|
466
505
|
return { flushed: false, reason: "empty" };
|
|
467
506
|
}
|
|
468
507
|
|
|
469
508
|
// Not at threshold? Skip only if not forced (interval flush uses force=true).
|
|
470
509
|
if (!force && totalCount < batch.config.maxBatchSize) {
|
|
510
|
+
console.log("[doFlushTransition] EARLY RETURN - below_threshold");
|
|
471
511
|
return { flushed: false, reason: "below_threshold" };
|
|
472
512
|
}
|
|
473
513
|
|
|
474
514
|
// Cancel scheduled timer if exists
|
|
475
515
|
if (batch.scheduledFlushId) {
|
|
516
|
+
console.log("[doFlushTransition] Cancelling scheduled timer", batch.scheduledFlushId);
|
|
476
517
|
await ctx.scheduler.cancel(batch.scheduledFlushId);
|
|
477
518
|
}
|
|
478
519
|
|
|
@@ -484,14 +525,16 @@ export const doFlushTransition = internalMutation({
|
|
|
484
525
|
lastUpdatedAt: now,
|
|
485
526
|
scheduledFlushId: undefined,
|
|
486
527
|
});
|
|
528
|
+
console.log("[doFlushTransition] Patched batch to flushing");
|
|
487
529
|
|
|
488
|
-
//
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
530
|
+
// Return the processBatchHandle so maybeFlush can call executeFlush directly
|
|
531
|
+
// (Scheduling from mutation was unreliable in component context)
|
|
532
|
+
console.log("[doFlushTransition] Returning processBatchHandle for direct execution");
|
|
533
|
+
return {
|
|
534
|
+
flushed: true,
|
|
535
|
+
itemCount: totalCount,
|
|
536
|
+
processBatchHandle: batch.config.processBatchHandle
|
|
537
|
+
};
|
|
495
538
|
},
|
|
496
539
|
});
|
|
497
540
|
|
|
@@ -501,14 +544,18 @@ export const executeFlush = internalAction({
|
|
|
501
544
|
processBatchHandle: v.string(),
|
|
502
545
|
},
|
|
503
546
|
handler: async (ctx, { batchDocId, processBatchHandle }) => {
|
|
547
|
+
console.log("[executeFlush] ENTERED", { batchDocId, processBatchHandle });
|
|
548
|
+
|
|
504
549
|
const startTime = Date.now();
|
|
505
550
|
let success = true;
|
|
506
551
|
let errorMessage: string | undefined;
|
|
507
552
|
|
|
508
553
|
// Collect items from batchItems table
|
|
554
|
+
console.log("[executeFlush] Collecting batch items...");
|
|
509
555
|
const { items, flushStartedAt } = await ctx.runQuery(internal.lib.collectBatchItems, {
|
|
510
556
|
batchDocId,
|
|
511
557
|
});
|
|
558
|
+
console.log("[executeFlush] Collected items", { count: items.length });
|
|
512
559
|
|
|
513
560
|
if (items.length === 0) {
|
|
514
561
|
await ctx.runMutation(internal.lib.recordFlushResult, {
|
|
@@ -602,8 +649,8 @@ export const recordFlushResult = internalMutation({
|
|
|
602
649
|
// Re-schedule interval timer
|
|
603
650
|
const scheduledFlushId = await ctx.scheduler.runAfter(
|
|
604
651
|
batch.config.flushIntervalMs,
|
|
605
|
-
internal.lib.
|
|
606
|
-
{ batchDocId }
|
|
652
|
+
internal.lib.maybeFlush,
|
|
653
|
+
{ batchDocId, force: true }
|
|
607
654
|
);
|
|
608
655
|
await ctx.db.patch(batchDocId, { scheduledFlushId });
|
|
609
656
|
}
|
|
@@ -644,8 +691,8 @@ export const recordFlushResult = internalMutation({
|
|
|
644
691
|
if (batch.config.flushIntervalMs > 0 && batch.config.processBatchHandle) {
|
|
645
692
|
scheduledFlushId = await ctx.scheduler.runAfter(
|
|
646
693
|
batch.config.flushIntervalMs,
|
|
647
|
-
internal.lib.
|
|
648
|
-
{ batchDocId }
|
|
694
|
+
internal.lib.maybeFlush,
|
|
695
|
+
{ batchDocId, force: true }
|
|
649
696
|
);
|
|
650
697
|
}
|
|
651
698
|
|