ruby-on-rails – 如何使用Sidekiq将文件上传到后台?
我正在开发一个Rails应用程序,允许您上传大型音乐文件.我想在后台上传这些内容,以便当您开始上传时,它会被移动到sidekiq工作人员,同时用户输入有关文件的元数据,例如曲目名称和艺术家等.
我能够按照这个railscast将图像处理移到后台: 但我无法弄清楚如何将文件的实际上传移动到后台.我应该使用某种回调或Sidekiq方法吗? 有关于如何做这样的事情的资源吗? 这是我的歌曲模型: 我的歌曲控制器: 我的上传表格: 我的上传器(使用带wavewave_direct的载波到s3): 该代码可以上传到s3,但在文件上传时,浏览器会在Rails进程中占用.我更愿意将其转移到后台进程.我认为那里的sidekiq代码实际上来自处理图像处理的Railscast,但我不太明白为什么图像处理在Railscast中工作. 非常感谢任何指向正确方向的帮助. 解决方法
您的TrackUploader类基本上需要一个带有参数的“perform”方法.在该方法中,输入逻辑来上传图像.
您还需要指定队列的名称(即track_uploader) 之后,您可以通过TrackUploader.perform_async(参数)将项添加到此工作队列. 您可以手动启动sidekiq,或使用God,以确保它保持活力. class TrackUploader < CarrierWave::Uploader::Base include Sidekiq::Worker sidekiq_options :queue => :track_uploader include Sprockets::Helpers::RailsHelper include Sprockets::Helpers::IsolatedHelper include CarrierWaveDirect::Uploader # Recommended for use with fog include CarrierWave::MimeTypes process :set_content_type def extension_white_list %w(mp3 m4a wav aiff flac) end def perform(argument) #do the actual uploading here end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |