我試圖將文件下載分解爲後臺進程。我的資產存儲在S3上。分解文件下載到後臺進程使用Sidekiq
我原來(阻塞)的代碼如下所示
# From DownloadsController#download
data = open(path)
send_data(data.read, type: @download.mime_type, filename: @download.file_title)
所以我已經設置了Redis的和Sidekiq,創造了FielDownloadWorker
:
class FileDownloadWorker
include Sidekiq::Worker
def perform(path, mime_type, file_title)
data = open(path)
# What happens next?
end
end
這是使用稱爲:
FileDownloadWorker.perform_async(path,@ download.mime_type,@ download.file_title)
如何從工作人員開始下載?
感謝您的回覆。我試圖做一個非標準的方法嗎?我應該擔心阻止下載? – Undistraction
延遲阻止對工作人員的IO操作是非常標準的。但不是標準的讓工作人員通過下載來回應用戶。工人不能發表迴應。只有控制器可以。一些解決方法就是解決這個問題。 – DiegoSalazar