Skip to main content

Class: TemporalScheduleService

Defined in: src/services/temporal-schedule.service.ts:50

Service for managing Temporal schedules including creating, updating, and monitoring scheduled workflows

Implements​

  • OnModuleInit
  • OnModuleDestroy

Constructors​

Constructor​

new TemporalScheduleService(options, client, discoveryService, metadataAccessor): TemporalScheduleService

Defined in: src/services/temporal-schedule.service.ts:56

Parameters​

options​

TemporalOptions

client​

Client | null

discoveryService​

DiscoveryService

metadataAccessor​

TemporalMetadataAccessor

Returns​

TemporalScheduleService

Methods​

createSchedule()​

createSchedule(options): Promise<ScheduleCreationResult>

Defined in: src/services/temporal-schedule.service.ts:516

Create a new schedule

Parameters​

options​

ScheduleCreationOptions

Returns​

Promise<ScheduleCreationResult>


deleteSchedule()​

deleteSchedule(scheduleId): Promise<ScheduleOperationResult>

Defined in: src/services/temporal-schedule.service.ts:738

Delete a schedule.

Parameters​

scheduleId​

string

Returns​

Promise<ScheduleOperationResult>

Example​

await scheduleService.deleteSchedule('daily-report');

describeSchedule()​

describeSchedule(scheduleId): Promise<ScheduleDescribeResult>

Defined in: src/services/temporal-schedule.service.ts:802

Describe a schedule, returning its current configuration and state.

Parameters​

scheduleId​

string

Returns​

Promise<ScheduleDescribeResult>

Example​

const { description } = await scheduleService.describeSchedule('daily-report');
console.log(description?.state.paused);

getHealth()​

getHealth(): ScheduleServiceHealth

Defined in: src/services/temporal-schedule.service.ts:886

Get service health status

Returns​

ScheduleServiceHealth


getSchedule()​

getSchedule(scheduleId): Promise<ScheduleRetrievalResult>

Defined in: src/services/temporal-schedule.service.ts:607

Get a schedule handle

Parameters​

scheduleId​

string

Returns​

Promise<ScheduleRetrievalResult>


getScheduleStats()​

getScheduleStats(): ScheduleServiceStats

Defined in: src/services/temporal-schedule.service.ts:861

Get schedule statistics

Returns​

ScheduleServiceStats


getStatus()​

getStatus(): ScheduleServiceStatus

Defined in: src/services/temporal-schedule.service.ts:874

Get service status

Returns​

ScheduleServiceStatus


isHealthy()​

isHealthy(): boolean

Defined in: src/services/temporal-schedule.service.ts:854

Check if service is healthy

Returns​

boolean


listSchedules()​

listSchedules(options?): ScheduleListResult

Defined in: src/services/temporal-schedule.service.ts:832

List schedules in the namespace, wrapped in a result envelope so callers can distinguish "schedule client unavailable" from "no schedules found".

Parameters​

options?​

ListScheduleOptions

Returns​

ScheduleListResult

Example​

const { schedules } = scheduleService.listSchedules();
for await (const schedule of schedules ?? []) {
console.log(schedule.scheduleId);
}

onModuleDestroy()​

onModuleDestroy(): Promise<void>

Defined in: src/services/temporal-schedule.service.ts:143

Cleanup on module destroy

Returns​

Promise<void>

Implementation of​

OnModuleDestroy.onModuleDestroy


onModuleInit()​

onModuleInit(): Promise<void>

Defined in: src/services/temporal-schedule.service.ts:120

Initialize the schedule service

Returns​

Promise<void>

Implementation of​

OnModuleInit.onModuleInit


pauseSchedule()​

pauseSchedule(scheduleId, note?): Promise<ScheduleOperationResult>

Defined in: src/services/temporal-schedule.service.ts:654

Pause a schedule so it no longer takes actions.

Parameters​

scheduleId​

string

note?​

string

Returns​

Promise<ScheduleOperationResult>

Example​

await scheduleService.pauseSchedule('daily-report', 'investigating an incident');

triggerSchedule()​

triggerSchedule(scheduleId, overlapPolicy?): Promise<ScheduleOperationResult>

Defined in: src/services/temporal-schedule.service.ts:708

Trigger an immediate action for a schedule, outside its normal specification.

Parameters​

scheduleId​

string

overlapPolicy?​

ScheduleOverlapPolicy

Returns​

Promise<ScheduleOperationResult>

Example​

await scheduleService.triggerSchedule('daily-report', 'ALLOW_ALL');

unpauseSchedule()​

unpauseSchedule(scheduleId, note?): Promise<ScheduleOperationResult>

Defined in: src/services/temporal-schedule.service.ts:681

Unpause a schedule, resuming its actions.

Parameters​

scheduleId​

string

note?​

string

Returns​

Promise<ScheduleOperationResult>

Example​

await scheduleService.unpauseSchedule('daily-report');

updateSchedule()​

updateSchedule(scheduleId, updateFn): Promise<ScheduleOperationResult>

Defined in: src/services/temporal-schedule.service.ts:771

Update a schedule's definition. updateFn receives the current description and must return the new desired schedule options — mirrors the SDK's describe-then-transform ScheduleHandle.update() pattern.

Parameters​

scheduleId​

string

updateFn​

(previous) => ScheduleUpdateOptions

Returns​

Promise<ScheduleOperationResult>

Example​

await scheduleService.updateSchedule('daily-report', (previous) => ({
...previous,
spec: { ...previous.spec, cronExpressions: ['0 9 * * *'] },
}));

upsertSchedule()​

upsertSchedule(options): Promise<ScheduleUpsertResult>

Defined in: src/services/temporal-schedule.service.ts:555

Create a schedule, or update it in place if a schedule with the same scheduleId already exists — avoids the SDK's ScheduleAlreadyRunning error on repeated bootstraps (e.g. registering schedules on every app start).

Parameters​

options​

ScheduleCreationOptions

Returns​

Promise<ScheduleUpsertResult>

Example​

await scheduleService.upsertSchedule({
scheduleId: 'daily-report',
spec: { cronExpressions: ['0 9 * * *'] },
action: { type: 'startWorkflow', workflowType: 'sendDailyReport', taskQueue: 'reports' },
});