클래스: 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<TValue>
반환값
Batcher<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<BatcherOptions<TValue>>
반환값
void