백그라운드 작업으로 처리하기 만하면됩니다. Heroku에서는 매우 쉽습니다. Resque + Redis를 사용하지만 DelayedJob을 사용할 수도 있습니다. Resque (github에서 작성)은 Redis (키 값 저장소)의 맨 위에있는 대기열입니다. DelayedJob으로 큐잉하는 것보다 규모를 조정하는 것이 훨씬 쉽지만, 어느 방법 으로든 작동합니다.
- 먼저 무료로 Heroku Redis to Go addon을 설치하십시오.
- 그러면 Redis To Go의 Resque with Redis on Heroku blog Post을 따라 보석 등을 설정하십시오.
- 후 양식 데이터를 : 그 일단
여기에 당신이해야 할 전부, 설정입니다.
- 나중에 처리 할 처리되지 않은을 저장하십시오.
- 대기열에 항목을 추가했다고 Resque에게 알립니다. 양식은 사용자 생성 양식을 경우
코드는 다음과 같을 수 있습니다
module SaveUser
@queue = :save_user
def perform(attributes = {})
user = User.create(attributes)
user.process! if user && !user.processed_everthing?
end
end
def create
Resque.enqueue(SaveUser, params[:user])
end
... 당신은 또한 다음과 같은합니다 (PARAMS, 큐에 단지 id
을하지 저장처럼 쓸 수)
module SaveUser
@queue = :save_user
def perform(id)
user = User.find(id)
user.process! if user && !user.processed_everthing?
end
end
def create
user = User.create(params[:user])
Resque.enqueue(SaveUser, user.id)
end
모든 것을 대기열에 넣으면 사용자는 거의 즉시 다음 페이지로 이동합니다.
사용자가 다음 페이지에서 즉시 처리 결과를 확인해야하는 경우, 다른 것을 알아 내야 할 것입니다.
8 개의 입력란 중 5 개 입력란에 양식을 제출하면 서버가 시간 초과됩니까? 양식 데이터로 무엇을하고 있습니까? – Alex