Skip to content

Commit c8d38ec

Browse files
committed
Add new scheduling methods to API
1 parent 10b6d30 commit c8d38ec

File tree

7 files changed

+51
-1
lines changed

7 files changed

+51
-1
lines changed

packages/actor-core/src/actor/driver.ts

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ export interface ActorDriver {
1414

1515
// Schedule
1616
setAlarm(actor: AnyActorInstance, timestamp: number): Promise<void>;
17+
getAlarm(actor: AnyActorInstance): Promise<number | null>;
18+
deleteAlarm(actor: AnyActorInstance): Promise<void>;
1719

1820
// TODO:
1921
//destroy(): Promise<void>;

packages/actor-core/src/test/driver/actor.ts

+8
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,12 @@ export class TestActorDriver implements ActorDriver {
2727
actor.onAlarm();
2828
}, timestamp - Date.now());
2929
}
30+
31+
async getAlarm(actor: AnyActorInstance): Promise<number | null> {
32+
throw new Error("Method not implemented.");
33+
}
34+
35+
async deleteAlarm(actor: AnyActorInstance): Promise<void> {
36+
throw new Error("Method not implemented.");
37+
}
3038
}

packages/drivers/file-system/src/actor.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,12 @@ export class FileSystemActorDriver implements ActorDriver {
4141
actor.onAlarm();
4242
}, delay);
4343
}
44-
}
44+
45+
async getAlarm(actor: AnyActorInstance): Promise<number | null> {
46+
throw new Error("Method not implemented.");
47+
}
48+
49+
async deleteAlarm(actor: AnyActorInstance): Promise<void> {
50+
throw new Error("Method not implemented.");
51+
}
52+
}

packages/drivers/memory/src/actor.ts

+8
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,12 @@ export class MemoryActorDriver implements ActorDriver {
2828
actor.onAlarm();
2929
}, delay);
3030
}
31+
32+
async getAlarm(actor: AnyActorInstance): Promise<number | null> {
33+
throw new Error("Method not implemented.");
34+
}
35+
36+
async deleteAlarm(actor: AnyActorInstance): Promise<void> {
37+
throw new Error("Method not implemented.");
38+
}
3139
}

packages/drivers/redis/src/actor.ts

+8
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,12 @@ export class RedisActorDriver implements ActorDriver {
3636
actor.onAlarm();
3737
}, delay);
3838
}
39+
40+
getAlarm(actor: AnyActorInstance): Promise<number | null> {
41+
throw new Error("Method not implemented.");
42+
}
43+
44+
deleteAlarm(actor: AnyActorInstance): Promise<void> {
45+
throw new Error("Method not implemented.");
46+
}
3947
}

packages/platforms/cloudflare-workers/src/actor_driver.ts

+8
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,12 @@ export class CloudflareWorkersActorDriver implements ActorDriver {
6161
async setAlarm(actor: AnyActorInstance, timestamp: number): Promise<void> {
6262
await this.#getDOCtx(actor.id).storage.setAlarm(timestamp);
6363
}
64+
65+
async getAlarm(actor: AnyActorInstance): Promise<number | null> {
66+
return await this.#getDOCtx(actor.id).storage.getAlarm();
67+
}
68+
69+
async deleteAlarm(actor: AnyActorInstance): Promise<void> {
70+
await this.#getDOCtx(actor.id).storage.deleteAlarm();
71+
}
6472
}

packages/platforms/rivet/src/actor_driver.ts

+8
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,12 @@ export class RivetActorDriver implements ActorDriver {
3232
actor.onAlarm();
3333
}, timeout);
3434
}
35+
36+
getAlarm(actor: AnyActorInstance): Promise<number | null> {
37+
throw new Error("Method not implemented.");
38+
}
39+
40+
deleteAlarm(actor: AnyActorInstance): Promise<void> {
41+
throw new Error("Method not implemented.");
42+
}
3543
}

0 commit comments

Comments
 (0)