@codesoul-co/hypha-core / modules/runtime/session-queue
模块用法
用于执行该边界的运行时行为。Session queue 模块公开 1 类、1 函数、2 接口。
从包入口导入
ts
import {
InMemorySessionQueue,
createSessionQueueHealthSnapshot,
} from '@codesoul-co/hypha-core';
import type {
InMemorySessionQueueOptions,
SessionQueue,
} from '@codesoul-co/hypha-core';使用要点
- 2 个类型/接口用于应用代码、Adapter 或测试中的静态契约;请使用
import type,运行时不应依赖它们。 - 1 个类提供可实例化的运行时实现;构造参数与公开方法在各自条目中完整列出。
- 1 个函数是该模块的直接操作入口;每个 overload 的必需/可选参数与返回类型均在下方列出。
公共导出
| Symbol | 种类 | 签名 | 说明 |
|---|---|---|---|
InMemorySessionQueue | 类 | new InMemorySessionQueue(options?: InMemorySessionQueueOptions): InMemorySessionQueue | In Memory Session Queue 类,共公开 14 个构造函数或成员;精确签名见本条目的声明与成员表。 |
createSessionQueueHealthSnapshot | 函数 | createSessionQueueHealthSnapshot(records: readonly SessionCommandRecord[], checkedAt: string, recoveredExpiredLeases?: number): SessionQueueHealthSnapshot | Create Session Queue Health Snapshot 函数,提供 1 个公开调用签名;参数与返回类型见下表。 |
InMemorySessionQueueOptions | 接口 | interface InMemorySessionQueueOptions | In Memory Session Queue Options 接口,共包含 8 个公开字段或方法。 |
SessionQueue | 接口 | interface SessionQueue | Session Queue 接口,共包含 13 个公开字段或方法。 |
InMemorySessionQueue
In Memory Session Queue 类,共公开 14 个构造函数或成员;精确签名见本条目的声明与成员表。
- 种类: 类
- 导入:
import { InMemorySessionQueue } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/session-queue
声明
text
export declare class InMemorySessionQueue implements SessionQueue {
constructor(options?: InMemorySessionQueueOptions);
enqueue(request: EnqueueSessionCommandRequest): Promise<SessionCommandRecord>;
claim(request: ClaimSessionCommandRequest): Promise<SessionCommandRecord | null>;
renew(request: RenewSessionCommandRequest): Promise<SessionCommandClaim>;
complete(request: CompleteSessionCommandRequest): Promise<void>;
fail(request: FailSessionCommandRequest): Promise<void>;
release(request: ReleaseSessionCommandRequest): Promise<void>;
list(request: ListSessionCommandsRequest): Promise<SessionCommandRecord[]>;
cancelPending(request: CancelSessionCommandsRequest): Promise<CancelSessionCommandsResult>;
redriveDeadLetter(request: RedriveDeadLetterSessionCommandRequest): Promise<SessionCommandRecord>;
closeDeadLetter(request: CloseDeadLetterSessionCommandRequest): Promise<SessionCommandRecord>;
listStuck(request: ListStuckSessionCommandsRequest): Promise<StuckSessionCommand[]>;
drain(scope: SessionQueueScope): Promise<void>;
health(): Promise<ProviderHealth & {
details: SessionQueueHealthSnapshot;
}>;
}公开成员
| 成员 | 种类 | 签名 | 说明 |
|---|---|---|---|
cancelPending | 方法 | cancelPending(request: CancelSessionCommandsRequest): Promise<CancelSessionCommandsResult> | 公开方法;参数与返回类型以签名列为准。 |
claim | 方法 | claim(request: ClaimSessionCommandRequest): Promise<SessionCommandRecord | null> | 公开方法;参数与返回类型以签名列为准。 |
closeDeadLetter | 方法 | closeDeadLetter(request: CloseDeadLetterSessionCommandRequest): Promise<SessionCommandRecord> | 公开方法;参数与返回类型以签名列为准。 |
complete | 方法 | complete(request: CompleteSessionCommandRequest): Promise<void> | 公开方法;参数与返回类型以签名列为准。 |
constructor | 构造函数 | (options?: InMemorySessionQueueOptions): InMemorySessionQueue | 创建该类的实例。 |
drain | 方法 | drain(scope: SessionQueueScope): Promise<void> | 公开方法;参数与返回类型以签名列为准。 |
enqueue | 方法 | enqueue(request: EnqueueSessionCommandRequest): Promise<SessionCommandRecord> | 公开方法;参数与返回类型以签名列为准。 |
fail | 方法 | fail(request: FailSessionCommandRequest): Promise<void> | 公开方法;参数与返回类型以签名列为准。 |
health | 方法 | health(): Promise<ProviderHealth & { details: SessionQueueHealthSnapshot; }> | 公开方法;参数与返回类型以签名列为准。 |
list | 方法 | list(request: ListSessionCommandsRequest): Promise<SessionCommandRecord[]> | 公开方法;参数与返回类型以签名列为准。 |
listStuck | 方法 | listStuck(request: ListStuckSessionCommandsRequest): Promise<StuckSessionCommand[]> | 公开方法;参数与返回类型以签名列为准。 |
redriveDeadLetter | 方法 | redriveDeadLetter(request: RedriveDeadLetterSessionCommandRequest): Promise<SessionCommandRecord> | 公开方法;参数与返回类型以签名列为准。 |
release | 方法 | release(request: ReleaseSessionCommandRequest): Promise<void> | 公开方法;参数与返回类型以签名列为准。 |
renew | 方法 | renew(request: RenewSessionCommandRequest): Promise<SessionCommandClaim> | 公开方法;参数与返回类型以签名列为准。 |
createSessionQueueHealthSnapshot
Create Session Queue Health Snapshot 函数,提供 1 个公开调用签名;参数与返回类型见下表。
- 种类: 函数
- 导入:
import { createSessionQueueHealthSnapshot } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/session-queue
声明
text
export declare function createSessionQueueHealthSnapshot(records: readonly SessionCommandRecord[], checkedAt: string, recoveredExpiredLeases?: number): SessionQueueHealthSnapshot;调用签名
text
createSessionQueueHealthSnapshot(records: readonly SessionCommandRecord[], checkedAt: string, recoveredExpiredLeases?: number): SessionQueueHealthSnapshot参数
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
records | readonly SessionCommandRecord[] | 是 | 必需参数;接受的值由类型列定义。 |
checkedAt | string | 是 | 必需参数;接受的值由类型列定义。 |
recoveredExpiredLeases | number | 否 | 可选参数;接受的值由类型列定义。 |
返回值
- 类型:
SessionQueueHealthSnapshot - 说明: 返回值契约由上述类型定义。
InMemorySessionQueueOptions
In Memory Session Queue Options 接口,共包含 8 个公开字段或方法。
- 种类: 接口
- 导入:
import type { InMemorySessionQueueOptions } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/session-queue
声明
text
export interface InMemorySessionQueueOptions {
now?: () => string;
duplicatePolicy?: 'reuse' | 'reject';
maxPendingPerSession?: number;
maxPendingPerUser?: number;
maxPendingGlobal?: number;
maxConcurrentSessions?: number;
maxConcurrentSessionsPerUser?: number;
priorityAgingMs?: number;
}契约成员
| 成员 | 种类 | 签名 | 说明 |
|---|---|---|---|
duplicatePolicy | 属性 | duplicatePolicy?: "reuse" | "reject" | 公开属性;类型、只读和可选状态以签名列为准。 |
maxConcurrentSessions | 属性 | maxConcurrentSessions?: number | 公开属性;类型、只读和可选状态以签名列为准。 |
maxConcurrentSessionsPerUser | 属性 | maxConcurrentSessionsPerUser?: number | 公开属性;类型、只读和可选状态以签名列为准。 |
maxPendingGlobal | 属性 | maxPendingGlobal?: number | 公开属性;类型、只读和可选状态以签名列为准。 |
maxPendingPerSession | 属性 | maxPendingPerSession?: number | 公开属性;类型、只读和可选状态以签名列为准。 |
maxPendingPerUser | 属性 | maxPendingPerUser?: number | 公开属性;类型、只读和可选状态以签名列为准。 |
now | 方法 | now?(): string | 公开方法;参数与返回类型以签名列为准。 |
priorityAgingMs | 属性 | priorityAgingMs?: number | 公开属性;类型、只读和可选状态以签名列为准。 |
SessionQueue
Session Queue 接口,共包含 13 个公开字段或方法。
- 种类: 接口
- 导入:
import type { SessionQueue } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/session-queue
声明
text
export interface SessionQueue {
enqueue(request: EnqueueSessionCommandRequest): Promise<SessionCommandRecord>;
claim(request: ClaimSessionCommandRequest): Promise<SessionCommandRecord | null>;
renew(request: RenewSessionCommandRequest): Promise<SessionCommandClaim>;
complete(request: CompleteSessionCommandRequest): Promise<void>;
fail(request: FailSessionCommandRequest): Promise<void>;
release(request: ReleaseSessionCommandRequest): Promise<void>;
list(request: ListSessionCommandsRequest): Promise<SessionCommandRecord[]>;
cancelPending(request: CancelSessionCommandsRequest): Promise<CancelSessionCommandsResult>;
redriveDeadLetter(request: RedriveDeadLetterSessionCommandRequest): Promise<SessionCommandRecord>;
closeDeadLetter(request: CloseDeadLetterSessionCommandRequest): Promise<SessionCommandRecord>;
listStuck(request: ListStuckSessionCommandsRequest): Promise<StuckSessionCommand[]>;
drain(scope: SessionQueueScope): Promise<void>;
health(): Promise<ProviderHealth & {
details: SessionQueueHealthSnapshot;
}>;
}契约成员
| 成员 | 种类 | 签名 | 说明 |
|---|---|---|---|
cancelPending | 方法 | cancelPending(request: CancelSessionCommandsRequest): Promise<CancelSessionCommandsResult> | 公开方法;参数与返回类型以签名列为准。 |
claim | 方法 | claim(request: ClaimSessionCommandRequest): Promise<SessionCommandRecord | null> | 公开方法;参数与返回类型以签名列为准。 |
closeDeadLetter | 方法 | closeDeadLetter(request: CloseDeadLetterSessionCommandRequest): Promise<SessionCommandRecord> | 公开方法;参数与返回类型以签名列为准。 |
complete | 方法 | complete(request: CompleteSessionCommandRequest): Promise<void> | 公开方法;参数与返回类型以签名列为准。 |
drain | 方法 | drain(scope: SessionQueueScope): Promise<void> | 公开方法;参数与返回类型以签名列为准。 |
enqueue | 方法 | enqueue(request: EnqueueSessionCommandRequest): Promise<SessionCommandRecord> | 公开方法;参数与返回类型以签名列为准。 |
fail | 方法 | fail(request: FailSessionCommandRequest): Promise<void> | 公开方法;参数与返回类型以签名列为准。 |
health | 方法 | health(): Promise<ProviderHealth & { details: SessionQueueHealthSnapshot; }> | 公开方法;参数与返回类型以签名列为准。 |
list | 方法 | list(request: ListSessionCommandsRequest): Promise<SessionCommandRecord[]> | 公开方法;参数与返回类型以签名列为准。 |
listStuck | 方法 | listStuck(request: ListStuckSessionCommandsRequest): Promise<StuckSessionCommand[]> | 公开方法;参数与返回类型以签名列为准。 |
redriveDeadLetter | 方法 | redriveDeadLetter(request: RedriveDeadLetterSessionCommandRequest): Promise<SessionCommandRecord> | 公开方法;参数与返回类型以签名列为准。 |
release | 方法 | release(request: ReleaseSessionCommandRequest): Promise<void> | 公开方法;参数与返回类型以签名列为准。 |
renew | 方法 | renew(request: RenewSessionCommandRequest): Promise<SessionCommandClaim> | 公开方法;参数与返回类型以签名列为准。 |
