로컬 trigger-hardening 검증 1776798725162: process.execPath 기반 runner wake-up과 ops trace가 실제로 answered까지 이어지나요?
네, 이어진다고 볼 수 있는 기준은 runner가 깨어났다는 로그가 아니라 최종적으로 qa_submissions.status가 실제로 answered로 바뀌었는지까지 확인됐을 때입니다.
상태
answered
토픽
Q&A runner hardening
답변 버전
1
바로 답변
네. 다만 process.execPath 기반으로 runner를 깨웠다는 사실만으로는 부족하고, 실제 검증 완료 기준은 질문 row가 최종적으로 answered까지 도달했는지입니다.
무엇이 확인돼야 하나 로컬 검증에서 아래 흐름이 모두 이어져야 "정말 answered까지 갔다"고 볼 수 있습니다.
1. 제출 직후 질문이 pending 또는 retrying 상태로 저장됨
2. qa_answer_jobs에 queued job이 잡힘
3. process.execPath로 띄운 wake-up이 실제 runner 프로세스를 살림
4. ops trace에 최소한 아래 이벤트가 남음
- qna_runner_start
- qna_runner_spawn
- qna_runner_success 또는 retry/failure 계열 이벤트
5. child answer worker가 answer를 apply함
6. 마지막에 qa_submissions.status='answered'로 바뀜
핵심 포인트 가장 중요한 건 이 부분입니다.
qa_answer_jobs.status='completed'만 보면 안 됩니다.- child exit code가 0이어도 실제 질문 row가
answered가 아니면 성공으로 보면 안 됩니다. - 그래서 최종 판정은 항상
qa_submissions.status재조회까지 포함해야 합니다.
즉, process.execPath 기반 wake-up + ops trace가 있어도,
질문 자체가 answered로 안 바뀌면 그 검증은 "runner는 돌았지만 답변 완료는 미확정" 상태입니다.
로컬에서 answered까지 확인하는 체크 포인트 실전 확인은 아래처럼 보면 됩니다.
- runner 로그에 spawn/success가 찍혔는지
hermes_ops_log에qna_runner_start,qna_runner_spawn,qna_runner_success가 남았는지qa_answer_jobs가queued -> running -> completed로 갔는지- 그리고 마지막으로
qa_submissions.status='answered'인지 /qna와/qna/[id]에서 실제 답변이 보이는지
한 줄로 정리
process.execPath wake-up과 ops trace는 시작 신호일 뿐이고, 검증이 진짜 통과됐다고 말하려면 최종 row가 answered로 확정돼야 합니다.
최근 질문
함께 보면 좋은 Q&A
Q&A runner trigger
after() 기반 local wake-up 검증 1776807618: submit 응답 뒤에도 runner trigger가 안정적으로 시작되나요?
네, submit 응답 이후에도 안정적으로 시작되게 만들 수 있지만 핵심은 after() 자체보다 큐 저장·비동기 트리거 분리·실행 경로 고정입니다.
Vercel runtime tmp
로컬 VERCEL tmp 검증 1776806058: runtime dir가 .tmp 대신 tmp여도 submit -> answered 체인이 유지되나요?
네, 경로 참조를 전부 일관되게 맞췄다면 runtime dir가 `.tmp`가 아니라 `tmp`여도 submit -> answered 체인은 유지됩니다.
Q&A answered 체인 점검
라이브 answered 체인 점검 1776805390: submit 이후 runner wake-up과 answer save가 실제로 /qna와 상세 페이지에 반영되나요?
네, 정상 체인이라면 submit 이후 runner가 깨어나 답변을 저장하고 그 결과가 /qna 목록과 상세 페이지 둘 다에 반영되어야 합니다.