작성
·
361
0
JobQueue::Push 에서 pushOnly를 추가해야 하는 이유를 잘 모르겠습니다.
JobQueue::Push 함수가 실행되었다는 것은 이미 예약한 시간이 되어서 실행되어도 좋은 Job이 JobQueue에 Push된다는 뜻이 아닌가요?
지금 당장 실행되어도 좋은 Job을 Push 하려는데, 왜 굳이 JobQueue::Execute를 건너뛰고 GlobalQueue::Push를 호출해서 한 타이밍 늦게 Job을 실행시키는지 잘 모르겠습니다.
답변 1
0
기본적으로 당장 실행하는 것도 좋지만,
모두가 공평하게 분배받아서 실행하는 것도 중요합니다.
CPU 코어가 16개라 가정하면 16개가 균등하게 일을 분배 받아야 하는데
JobQueue의 특성상 Job에서 또 Job을 실행하다 보면
한쪽으로 일감이 몰릴 수 있습니다.
일감을 밀어넣기만 하고, 나중에 각자 빼가는 식으로 구현하면
일의 분배가 아무래도 쉬워지기 때문에
보여드린 방식이지만 정책에 대한 선택은 스스로 하시면 됩니다.