근데 로직 실행중에 앞뒤가 바뀔수가 있잖아?
미래였던 애가 과거로 변해있는거지.
미래인애들은 예약을 걸고 (예약 안에 자기자신 삭제로직 있음)
과거인애들은 즉시작동시키고 디비에서 삭제하는 로직이야
이러면
미래라서 예약을 걸었는데 과거가 돼버려서
예약이 영원히 실행되지 않고
따라서 실행이 안되고 삭제도 되지 않는 문제가 생겨.
이걸 해결하기 위해,
한번 더 순회를 돌아서
과거인애들을 즉시작동시키고 디비에서 삭제시키는거야.
근데 이것도 문제가 있어.
그 사이에 미래였던 애가 과거로 변하는거야.
정상적이라면 과거로 변하는순간 예약이 작동해서 자기자신을 삭제시키니 순회가 안돼.
근데 문제는 삭제하는 도중일 경우야.
이 경우 이미 작업은 시작됐는데
과거인애들을 작동시키는 코드에 의해 중복실행이 일어남.
와 코드의 실행시간을 고려해야하는 코드 난이도 극악인데
이거 관련 버그는 어떻게 잡음?
미래였던 애가 과거로 변해있는거지.
미래인애들은 예약을 걸고 (예약 안에 자기자신 삭제로직 있음)
과거인애들은 즉시작동시키고 디비에서 삭제하는 로직이야
이러면
미래라서 예약을 걸었는데 과거가 돼버려서
예약이 영원히 실행되지 않고
따라서 실행이 안되고 삭제도 되지 않는 문제가 생겨.
이걸 해결하기 위해,
한번 더 순회를 돌아서
과거인애들을 즉시작동시키고 디비에서 삭제시키는거야.
근데 이것도 문제가 있어.
그 사이에 미래였던 애가 과거로 변하는거야.
정상적이라면 과거로 변하는순간 예약이 작동해서 자기자신을 삭제시키니 순회가 안돼.
근데 문제는 삭제하는 도중일 경우야.
이 경우 이미 작업은 시작됐는데
과거인애들을 작동시키는 코드에 의해 중복실행이 일어남.
와 코드의 실행시간을 고려해야하는 코드 난이도 극악인데
이거 관련 버그는 어떻게 잡음?
로직 실행하기 전에 기준이 될 시간을 고정시켜야지
아하 예약이 걸리는게 문제임. 예약이라는 메카니즘만 없으면 시간이 멈춘듯 판단기준을 세워버리면 되는데 그게 안됨
예를들면 미래인 애들을 예약한다고그럴때, 예약하는중간에 시간이 지나버리면 해당 예약은 영원히 안풀림. 원래 의도는 즉시실행되어야하는데 말이야. 그렇다고 빠진애들을 실행시키는 코드를 넣으면 이제는 중복실행문제가 생기고