@pikku/schedule 0.12.11 → 0.12.12
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.
|
@@ -15,7 +15,7 @@ export declare class InMemorySchedulerService extends SchedulerService {
|
|
|
15
15
|
/**
|
|
16
16
|
* Schedule a one-off delayed RPC call via setTimeout
|
|
17
17
|
*/
|
|
18
|
-
scheduleRPC(delay: number | string, rpcName: string, data?: any, session?: CoreUserSession): Promise<string>;
|
|
18
|
+
scheduleRPC(delay: number | string, rpcName: string, data?: any, session?: CoreUserSession, traceparent?: string): Promise<string>;
|
|
19
19
|
unschedule(taskId: string): Promise<boolean>;
|
|
20
20
|
getTask(taskId: string): Promise<ScheduledTaskInfo | null>;
|
|
21
21
|
getAllTasks(): Promise<ScheduledTaskSummary[]>;
|
|
@@ -5,6 +5,7 @@ import { pikkuState, getSingletonServices } from '@pikku/core/state';
|
|
|
5
5
|
import { runScheduledTask } from '@pikku/core/scheduler';
|
|
6
6
|
import { getScheduledTasks } from '@pikku/core/scheduler';
|
|
7
7
|
import { rpcService } from '@pikku/core/rpc';
|
|
8
|
+
import { traceWire } from '@pikku/core/trace';
|
|
8
9
|
const RUN_HISTORY_LIMIT = 50;
|
|
9
10
|
const getLogger = () => {
|
|
10
11
|
return pikkuState(null, 'package', 'singletonServices').logger;
|
|
@@ -22,7 +23,7 @@ export class InMemorySchedulerService extends SchedulerService {
|
|
|
22
23
|
/**
|
|
23
24
|
* Schedule a one-off delayed RPC call via setTimeout
|
|
24
25
|
*/
|
|
25
|
-
async scheduleRPC(delay, rpcName, data, session) {
|
|
26
|
+
async scheduleRPC(delay, rpcName, data, session, traceparent) {
|
|
26
27
|
const delayMs = typeof delay === 'string' ? parseDurationString(delay) : delay;
|
|
27
28
|
const taskId = `inmem-${++this.idCounter}-${Date.now()}`;
|
|
28
29
|
const scheduledFor = new Date(Date.now() + delayMs);
|
|
@@ -44,8 +45,12 @@ export class InMemorySchedulerService extends SchedulerService {
|
|
|
44
45
|
// This matches what the BullMQ and pg-boss schedulers already do:
|
|
45
46
|
// enqueue `{ rpcName, data, session }` and invoke the RPC with it.
|
|
46
47
|
const services = getSingletonServices();
|
|
47
|
-
const
|
|
48
|
-
|
|
48
|
+
const wire = traceWire(traceparent);
|
|
49
|
+
const rpc = rpcService.getContextRPCService(services, wire, false);
|
|
50
|
+
// The function runs on this hop's span. `invoke` would add a call span
|
|
51
|
+
// under it, and nothing runs on the hop, so the function's parent would
|
|
52
|
+
// be a span nobody saw instead of the one that scheduled it.
|
|
53
|
+
await rpc.rpcWithWire(rpcName, data, wire);
|
|
49
54
|
}
|
|
50
55
|
catch (err) {
|
|
51
56
|
getLogger().error(`Failed to execute delayed RPC '${rpcName}': ${err}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pikku/schedule",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.12",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/pikkujs/pikku.git",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"clean": "rm -rf dist tsconfig.tsbuildinfo"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"@pikku/core": "^0.12.
|
|
28
|
+
"@pikku/core": "^0.12.151"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^26.6.5"
|