본문으로 건너뛰기

클래스: Batcher<TValue>

정의 위치: batcher.ts:145

항목을 수집하여 배치 단위로 처리하는 클래스입니다.

배칭은 여러 작업을 하나로 묶어 단일 단위로 처리하는 기법입니다. 이 동기 버전은 더 가벼우며 대부분의 경우 이것만으로 충분합니다. Promise, 재시도 지원, 중단/취소 기능 또는 고급 오류 처리가 필요하면 AsyncBatcher로 전환합니다.

Batcher는 다음 항목을 구성할 수 있는 유연한 배칭 구현 방법을 제공합니다.

  • 최대 배치 크기(배치당 항목 수)
  • 시간 기반 배칭(X밀리초 후 처리)
  • getShouldExecute를 통한 사용자 정의 배치 처리 로직
  • 배치 작업을 모니터링하는 이벤트 콜백

상태 관리:

  • 반응형 상태 관리에 TanStack Store를 사용합니다
  • Batcher를 생성할 때 initialState로 초기 상태 값을 제공합니다
  • onExecute 콜백으로 배치 실행에 반응하고 사용자 정의 로직을 구현합니다
  • onItemsChange 콜백으로 Batcher에서 항목이 추가되거나 제거될 때 반응합니다
  • 상태에는 배치 실행 횟수, 처리된 전체 항목 수, 항목, 실행 중 여부가 포함됩니다
  • 클래스를 직접 사용할 때는 batcher.store.state를 통해 상태에 접근할 수 있습니다
  • 프레임워크 어댑터(React/Solid)를 사용할 때는 batcher.state에서 상태에 접근합니다

예시

const batcher = new Batcher<number>(
(items) => console.log('Processing batch:', items),
{
maxSize: 5,
wait: 2000,
onExecute: (batch, batcher) => console.log('Batch executed:', batch)
}
);

batcher.addItem(1);
batcher.addItem(2);
// After 2 seconds or when 5 items are added, whichever comes first,
// the batch will be processed
// batcher.flush() // manually trigger a batch

타입 매개변수

TValue

TValue

생성자

생성자

new Batcher<TValue>(fn, initialOptions): Batcher<TValue>;

정의 위치: batcher.ts:153

매개변수

fn

(items) => void

initialOptions

BatcherOptions&lt;TValue>

반환값

Batcher&lt;TValue>

속성

fn()

fn: (items) => void;

정의 위치: batcher.ts:154

매개변수

items

TValue[]

반환값

void


key

key: string | undefined;

정의 위치: batcher.ts:149


options

options: BatcherOptionsWithOptionalCallbacks<TValue>;

정의 위치: batcher.ts:150


store

readonly store: Store<Readonly<BatcherState<TValue>>>;

정의 위치: batcher.ts:146

메서드

addItem()

addItem(item): void;

정의 위치: batcher.ts:211

Batcher에 항목을 추가합니다 배치 크기에 도달하거나 타임아웃이 발생하거나 shouldProcess가 true를 반환하면 배치를 처리합니다

매개변수

item

TValue

반환값

void


cancel()

cancel(): void;

정의 위치: batcher.ts:289

예약된 대기 중인 실행을 모두 취소합니다. 항목은 제거하지 않습니다.

반환값

void


clear()

clear(): void;

정의 위치: batcher.ts:281

Batcher에서 모든 항목을 제거합니다

반환값

void


flush()

flush(): void;

정의 위치: batcher.ts:259

현재 항목 배치를 즉시 처리합니다

반환값

void


peekAllItems()

peekAllItems(): TValue[];

정의 위치: batcher.ts:267

Batcher에 있는 모든 항목의 복사본을 반환합니다

반환값

TValue[]


reset()

reset(): void;

정의 위치: batcher.ts:297

Batcher 상태를 기본값으로 재설정합니다

반환값

void


setOptions()

setOptions(newOptions): void;

정의 위치: batcher.ts:180

Batcher 옵션을 업데이트합니다

매개변수

newOptions

Partial&lt;BatcherOptions&lt;TValue>>

반환값

void