Я добавил два стиля (smallcard и mediumcard) к своей модели прикрепления скрепки Скриншот:
class Screenshot < ActiveRecord::Base
has_attached_file :image,
:styles => { :tiny => "x75", :small => "x245", :medium => "x480", :large => "1280x900>",
:smallcard => "280x245#", :mediumcard => "570x480#" },
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/amazon_s3.yml",
:path => "/screenshots/:id_partition/:style/:filename"
end
Я вручную создал файл public/system/paperclip_attachments.yml, чтобы уменьшить обработку уже существующих стилей:
---
:Screenshot:
:image:
- :tiny
- :small
- :medium
- :large
Но все же, когда я запускаю rake paperclip:refresh:missing_styles CLASS=Screenshot, я получаю следующее:
Regenerating Screenshot -> image -> [:mediumcard, :smallcard]
rake aborted!
Cannot allocate memory - identify -format %wx%h '/tmp/79a229e96ab52dfa760132958da47bf320120806-31260-1eleoww[0]'
Tasks: TOP => paperclip:refresh:missing_styles
[clip]
Когда я веду журналы, обработка доходит до 500 (идентификаторы).
По общему признанию, сервер представляет собой Linode 512 под управлением Ubuntu, и он годами отлично обслуживает страницы для 3 приложений Rails и 1 приложения PHP. У меня никогда раньше не заканчивалась память.
Отслеживая процесс задачи rake, он постепенно увеличивается с каждым обрабатываемым изображением, пока не съест всю доступную оперативную память.
Может, моему Линоде пора подрасти... но сначала я надеюсь на какие-то другие варианты.
Как я могу обойти эту проблему с памятью и добавить эти два стиля к уже существующим 13-килобайтным изображениям?
Спасибо за вашу помощь!