2013-09-26 16 views
6

Heroku'da unicorn kullanıyorum. Yaşadığım sorunlardan biri dosya yüklemeleri. Yüklenmeler için carrierwave kullanıyoruz ve temelde, 2MB boyutunda bir dosya için bile,% 50-60 yükleme bittiğinde, Unicorn zaman aşımına uğruyor.Bir dosya yüklerken unicorn'dan zaman aşımı hatası

Yerel olarak sınandığımızda unicorn kullanmıyoruz ve yerel olarak büyük dosyalarla ilgili herhangi bir sorunum yok (dosyalar üretim + aşamalandırmada olduğu gibi, carrierwave kullanılarak AWS'ye yüklenmesine rağmen). Ancak, & üretim sunucularını hazırlarken, bir zaman aşımı aldığımızı görüyorum.

Bu sorunu gidermek için herhangi bir strateji var mı? Bu dosya yüklemesini gecikmeli bir işe koyduğumdan emin değilim (çünkü kullanıcılara dosyanın gerçekten başarıyla yüklendiğini onaylamam gerekiyor).

Teşekkürler! Ringo

+0

Tek boynuzlu at kullanmayı yerel olarak deneyebilir misiniz? –

cevap

0

Zaman aşımınız çok düşük ayarlanmış gibi görünüyor. Tek boynuzlu atı konfigürasyonun neye benziyor?

İyi bir başlangıç ​​noktası için https://devcenter.heroku.com/articles/rails-unicorn'a bakın.

+1

Tek boynuzlu zaman aşımım 15, 30'a yükseldi, ama fark yok. Artan zaman aşımına bağlı olmayan bir çözümü tercih etmeyi tercih ederim. –

2

Büyük dosyaları Hero3 ile S3'e yüklüyorsanız, zaman aşımlarından makul olarak kaçınamazsınız. Birisi büyük bir dosya yüklemeye karar verirse, zaman aşımına uğrar. Heroku'ya yüklemek 30 saniyeden uzun sürerse, S3'e aktarılır ve işlenir, istek zaman aşımına uğrar. İyi bir sebepten ötürü, 30'ların talebi sadece yumuşak performanstır.

Bu blog yazısı (ve github repo) çok yararlıdır: http://pjambet.github.io/blog/direct-upload-to-s3/ Bununla beraber

, çalışmaya doğrudan-s3 dosya yüklemesi yapabilirsiniz gerekir. Yükleme yığınının tamamı için Heroku'ya vurmaktan kesinlikle kaçınıyorsun. Jquery-fileupload'un geri çağrılarını kullanarak, dosya başarıyla yüklendikten sonra size uygulama gönderebilir ve delayed_job kullanarak arka planda işleyebilirsiniz. Yüklemenin başarılı olduğunu kullanıcılarınıza onaylamak, yalnızca dikkat etmeniz gereken bir uygulama sorunudur.

+0

Ayrıca bakınız: http://stackoverflow.com/a/16341162/1546887 – Taavo