我目前的Sidekiq设置如下处理图像,但后台没有进行任何操作。该页面需要10秒钟才能加载,然后新图像将显示在重定向页面上,并显示以下路径。 https://d9vwx0ll7rhpx.cloudfront.net/development/photo/image/product_thumb/product_thumb_0046d4ca-ca8d-4c02-b8cd-da0255c5736e.jpg
我希望这个过程在后台完成。
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 Backgrounder gem,但发现版本处理没有发生。代码运行但在新记录保存后,我在页面重定向上没有图像。
在查看Sidekiq Web界面时,我可以看到作业正在运行然后完成。
但是我留下了一张拒绝访问的图像(在同一目录中)。
在不使用宝石时看到顶部显示的网址发生的奇怪是有效的。
答案 0 :(得分:0)
我必须使用store_in_background而不是process_in_background才能将图片正确上传到s3