Skip to content

@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种类签名说明
InMemorySessionQueuenew InMemorySessionQueue(options?: InMemorySessionQueueOptions): InMemorySessionQueueIn Memory Session Queue 类,共公开 14 个构造函数或成员;精确签名见本条目的声明与成员表。
createSessionQueueHealthSnapshot函数createSessionQueueHealthSnapshot(records: readonly SessionCommandRecord[], checkedAt: string, recoveredExpiredLeases?: number): SessionQueueHealthSnapshotCreate Session Queue Health Snapshot 函数,提供 1 个公开调用签名;参数与返回类型见下表。
InMemorySessionQueueOptions接口interface InMemorySessionQueueOptionsIn Memory Session Queue Options 接口,共包含 8 个公开字段或方法。
SessionQueue接口interface SessionQueueSession Queue 接口,共包含 13 个公开字段或方法。

InMemorySessionQueue

In Memory Session Queue 类,共公开 14 个构造函数或成员;精确签名见本条目的声明与成员表。

声明

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 个公开调用签名;参数与返回类型见下表。

声明

text
export declare function createSessionQueueHealthSnapshot(records: readonly SessionCommandRecord[], checkedAt: string, recoveredExpiredLeases?: number): SessionQueueHealthSnapshot;

调用签名

text
createSessionQueueHealthSnapshot(records: readonly SessionCommandRecord[], checkedAt: string, recoveredExpiredLeases?: number): SessionQueueHealthSnapshot

参数

参数类型必需说明
recordsreadonly SessionCommandRecord[]必需参数;接受的值由类型列定义。
checkedAtstring必需参数;接受的值由类型列定义。
recoveredExpiredLeasesnumber可选参数;接受的值由类型列定义。

返回值

  • 类型: SessionQueueHealthSnapshot
  • 说明: 返回值契约由上述类型定义。

InMemorySessionQueueOptions

In Memory Session Queue Options 接口,共包含 8 个公开字段或方法。

声明

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 个公开字段或方法。

声明

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>公开方法;参数与返回类型以签名列为准。