Documentation index for AI agents

GS2-StateMachine 트랜잭션 액션

검증/소비/입수 각 트랜잭션 액션의 사양

액션의 조합과 동시 실행

모든 서비스에 공통되는 전제는 트랜잭션 액션의 조합에 정리되어 있습니다. 먼저 그쪽을 읽어 주십시오. 이 절의 나머지는 GS2-StateMachine 고유의 내용입니다.

GS2-StateMachine이 트랜잭션에 지정할 수 있는 액션은 1가지입니다. 스테이트 머신의 시작은 매번 새로운 스테이터스를 만들므로, 대상을 다투는 일이 없습니다.

조작같은 행을 겹쳤을 때중첩 너머다른 대상이 되는 경계
스테이트 머신의 시작
StartStateMachineByUserId
각각이 자신의 스테이트 머신을 시작한다. 충돌하지 않는다충돌하지 않는다시작할 때마다 다른 대상

진행 중인 스테이트 머신의 각 스텝도 각각 독립된 트랜잭션이므로, 시작한 트랜잭션과 통합되는 일은 없습니다. 스테이트 머신이 스텝 안에서 무엇을 하는지는 건드리는 서비스의 제한을 받습니다.

중첩된 트랜잭션에 주의

스테이트 머신의 시작은 이 영향을 받지 않습니다. 시작할 때마다 자신의 스테이터스를 만들기 때문입니다. 그 이후의 스텝도 다른 트랜잭션이므로, 시작한 트랜잭션과 통합되는 일은 없습니다.

동시 실행과 재시도

스테이트 머신을 동시에 시작해도 GS2-StateMachine 자체가 충돌을 반환하는 일은 없습니다. 스텝이 충돌하는지는 거기에서 무엇을 기록하는지에 따라 결정되며, 재시도 지침도 그 서비스의 것이 해당됩니다.


Acquire Action

입수 액션

Gs2StateMachine:StartStateMachineByUserId

사용자 ID를 지정하여 스테이트 머신 시작

최신 마스터 버전을 사용하여 지정한 사용자의 새로운 스테이트 머신 인스턴스를 시작합니다. 인자는 JSON으로 전달되어 스테이트 머신 변수로 파싱됩니다. 선택적으로 TTL(분 단위)을 설정할 수 있으며, 생략한 경우 스테이트 머신은 약 10년간 유효합니다.

수량 지정 가능한 액션: 아니오

반전 가능한 액션: 아니오

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
argsstring“{}”~ 4096자스테이트 머신에 전달할 인자
ttlint1 ~ 525600유효 기간(분)
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2StateMachine:StartStateMachineByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "args": "[string]스테이트 머신에 전달할 인자",
        "ttl": "[int]유효 기간(분)",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2StateMachine:StartStateMachineByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  args: "[string]스테이트 머신에 전달할 인자"
  ttl: "[int]유효 기간(분)"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("stateMachine").acquire.start_state_machine_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    args="[string]스테이트 머신에 전달할 인자",
    ttl="[int]유효 기간(분)",
    timeOffsetToken="[string]타임 오프셋 토큰",
})