2015-03-18 34 views
0

我目前的Sidekiq安裝程序正在處理圖像,但是在後臺沒有任何操作。該頁面需要10秒才能加載,然後使用以下路徑在重定向的頁面上顯示新圖像。 https://d9vwx0ll7rhpx.cloudfront.net/development/photo/image/product_thumb/product_thumb_0046d4ca-ca8d-4c02-b8cd-da0255c5736e.jpgCarrierWave Backgrounder進程拒絕訪問s3圖像

我希望這個過程在後臺完成。

def create 
@photo = Photo.new(photo_params) 
if @photo.save 
    UploadsWorker.perform_async(@photo.id, photo_params) 
    flash[:notice] = "Your new photograph is being processed." 
    redirect_to photographer_listings_path(@photog) 
else 
    flash[:notice] = "Check the fields marked with an orange flag." 
    render 'new' 
end 

class UploadsWorker 
include Sidekiq::Worker 

def perform(photo_id, photo_params) 
    photo = Photo.find(photo_id) 
    photo.image = photo_params["image"] 
    photo.save 
end 

我,而不是試圖用CarrierWave新聞背景寶石,卻發現該版本處理犯規發生。代碼將運行,但在保存新記錄後,頁面上沒有圖像。

查看Sidekiq網頁界面時,我可以看到作業正在運行,然後完成。

但是,我留下了一個拒絕訪問的圖像(在同一目錄中)。

奇怪的是,當不使用寶石時看到頂部顯示的網址是有效的。

https://d9vwx0ll7rhpx.cloudfront.net/development/photo/image/product_thumb/product_thumb_a9cf111f-c93a-4ec3-b1be-293321147000.jpg

回答

0

我不得不爲了使用store_in_background而非process_in_background對圖像進行正確上傳到S3