0

Şu an Raylar 4 ile birlikte Resque.Raylar Kayıt Oluşturmak için Arkaplan İşi?

Sorum, bir kayıt oluşturmak için bir arka plan işi kullanmak mantıklı olur mu? Bir şey gibi ...

def create 
    @article = Article.new(articles_params) 
    if @article.valid? 
     background_job_here 
    else 
     render 'new' 
    end 
end 

yalnızca diğer bu konuda bulabilirsiniz belgeler bunu yapmak mantıklı değil diyor, ancak, neden açıklamaz.

Heroku belgelerini okurken, 500 ms'den fazla alma isteğinin arka plana taşınmasını önerirler. Sitemde bir makale oluşturmak, 1000 ms'nin yukarı çıkabilmesi için bir istisna değildir. Bir arkaplan işi değilse, bunu nasıl yapmalıyım? Teşekkürler!

cevap

1

Benim düşünceme göre, kullanıcının bir yanıt beklediği herhangi bir şey için bir arka plan işi kullanmam. Bunun, istek/yanıt döngüsünü rahatsız edeceğini düşünüyorum. Örneğin, sizin durumunuzda, kullanıcı makalesini oluşturmak için bir talebe yanıt beklemektedir. Ancak, yanıt için zorunlu olmadığı sürece bir arka plan işinde bir kayıt oluşturmak çok iyi. Örneğin, kullanıcı tarafından talep edilmeyen başka kayıtlar oluşturmak için arka plan işlerine sahibim, ancak kullanıcı eylemi için analitikler için kullanılır. Şimdi, bir makale oluşturmak için 500 ms'den 1000 ms'ye çıkarılması kesinlikle bir sorundur. Bir arka plan işinin gerçekten hitap etmediği bir performans sorunudur. Uygulamanızın özelliklerinin ne olduğunu bilmiyorum, ancak veritabanınızı (örneğin, redis ile) önbelleğe almak isteyebilirsiniz.