PgOpaqueAdvisoryLocks — @gj-kit/toss-payments-postgresql
@gj-kit/toss-payments-postgresql/testing에서 공개하는 interface입니다. package version 0.5.1의 release declaration을 그대로 표시합니다.
검증된 import 예제
섹션 제목: “검증된 import 예제”import { PgOpaqueAdvisoryLocks } from '@gj-kit/toss-payments-postgresql/testing';시그니처, 매개변수, 반환 타입
섹션 제목: “시그니처, 매개변수, 반환 타입”/** * lifecycle work를 short-lived PostgreSQL advisory transaction lock 아래 실행하는 표면. * * callback에 SQL session을 전달하지 않는다. 이 API의 목적은 host DB transaction/worker * lifecycle의 **순서화**이며, 다른 ORM connection의 transaction과 2PC 원자성을 만들지 * 않는다. callback은 local durable work만 수행하고 provider/HTTP 같은 긴 network I/O는 * 넣지 않아야 한다. callback 안에서 같은 key로 이 facility를 재진입하면 다른 connection이 * 바깥 transaction의 xact lock을 기다려 self-deadlock하므로, 연관 작업은 한 callback에 둔다. */interface PgOpaqueAdvisoryLocks { withLock<T>(key: OpaqueAdvisoryLockKey, operation: () => T | Promise<T>): Promise<T>;}이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.
Release context
섹션 제목: “Release context”- 패키지:
@gj-kit/toss-payments-postgresql - 버전:
0.5.1 - 공개 entry:
./testing - 소스: GitHub
구현 주석
섹션 제목: “구현 주석”lifecycle work를 short-lived PostgreSQL advisory transaction lock 아래 실행하는 표면.
callback에 SQL session을 전달하지 않는다. 이 API의 목적은 host DB transaction/worker lifecycle의 순서화이며, 다른 ORM connection의 transaction과 2PC 원자성을 만들지 않는다. callback은 local durable work만 수행하고 provider/HTTP 같은 긴 network I/O는 넣지 않아야 한다. callback 안에서 같은 key로 이 facility를 재진입하면 다른 connection이 바깥 transaction의 xact lock을 기다려 self-deadlock하므로, 연관 작업은 한 callback에 둔다.