백그라운드 작업이 시작되면 작업자가 처리하는 대기열의 뒤로 보내집니다. 작업이 삭제되고 다른 작업이 시작됩니다. 어떤 경우에는 그 실용적인 측면을 이해하지 못한다는 것을 제외하고는 이걸 가지고 있다고 생각합니다. 물론 지연된 일자리를 사용하여 일주일에 한 번 15,000 통의 뉴스 레터를 보내는 회사라면 완벽한 의미를 갖습니다. 그러나 100 명 정도의 사용자가있는 애플리케이션의 경우 백그라운드 작업이 필요한 작업 (예 : 이메일 전송/가져 오기와 같은 작업이 1 분 정도 소요될 수 있음)이 충분하면 다른 사용자가 삭제되는 동안 각 사용자가 줄을 서서 기다려야합니다 한 명의 노동자가있는 경우).많은 사용자를 다룰 때 지연된 백그라운드 작업의 실제 사용
이것은 내가 올바르게되고 있는지 잘 모르겠다. 나는 동일한 직업에 대해 이야기하고 있지만 각 사용자에 대해 개별적으로 이야기하고 있습니다. 사용자 당 직업으로 간주됩니까? 100 명의 사용자가있는 경우 각 프로세스마다 100 명의 직원을 묶어서 묶지 않아도됩니까?
시뮬레이션을 위해 delayed_job을 사용해 보았습니다. 실제로 다른 계정으로 로그인 할 때까지 다른 사용자의 이메일이 전송 될 때까지 기다려야합니다. 플러그인은 신속하고 간단하게 작업 할 수 있지만 여기서는 올바른 방법이 아니라고 생각합니다.
나는 또한 Ajax를 사용해 보았지만 HTTP 요청이기 때문에 서버에서 응답을 얻을 때까지 브라우저를로드 모드로 묶는다 (async: true
포함). 내가 이것을 너무 빨리 다 판결했는지는 확실치 않지만, 나는 더 우아한 서버 솔루션을 찾고 있었다.
이렇게 백그라운드 작업을 수행 할 수있는 방법이 있습니까? (대기 시간이 거의 없음을 알 수있는 상업용 솔루션과는 다른 것으로 들었지만 사용자 간 대기열을 완전히 제거하는 데 관심이 있습니다.) 그렇지 않다면 응답을 기다리지 않고 아약스 요청을하는 방법이 있습니까? 내 질문은 모두 크게 다르다는 것을 알고 있지만이 문제에 대한 적절한 해결책 인 것 같습니다.
출처를 보내 주셔서 감사합니다. Resque는 지금 당장 필요로하는 것보다 더 많은 중장비, 특히 redis 설치의 오버 헤드 중 b/c라고 생각합니다. 내가 말했던 것처럼 delayed_job을 사용하고 있었기 때문에 dj로 여러 대기열을 사용하면 트릭을 할 수 있습니다. . – Gal