我在回形针附件模型中添加了两种样式(小卡和中卡)截图:
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 秒(id)。
该服务器无疑是一台运行 Ubuntu 的 Linode 512,多年来它在为 3 个 Rails 应用程序和 1 个 PHP 应用程序提供页面服务方面表现出色。我以前从来没有用过它的内存。
监视 rake 任务进程,它随着每个处理的图像而递增,直到它吃光所有可用的 RAM。
也许是时候让我的 Linode 成长了……但首先我希望有其他选择。
如何解决此内存问题并将这两种样式添加到预先存在的 13k 图像中?
谢谢你的帮助!