Move recommendations calculations to separate Resque task