小编Flo*_*ian的帖子

无法分配内存

出于某种原因,处理图像(carrierwave + minimagick)在服务启动后大约一周停止工作.流量或上传流程没有异常增加.一旦发生ENOMEM错误,一切似乎都"锁定",任何后续进程也会失败.

如果系统处于该行为中甚至可以防止这种情况发生,我怎样才能"拯救"系统?

一些错误:

Errno::ENOMEM (Cannot allocate memory - export LANG=C && identify -ping /tmp/mini_magick20111219-18047-1dhmawm.jpg 2>&1):
   app/uploaders/photo_uploader.rb:70:in `custom_thumbnail'
   app/controllers/upload_controller.rb:186:in `process_upload'
   app/middleware/flash_session_cookie_middleware.rb:17:in `call'
   app/middleware/flash_session_cookie_middleware.rb:17:in `call'


Errno::ENOMEM (Cannot allocate memory - export LANG=C && mogrify -format jpg /tmp/mini_magick20111219-18047-1c43qpf.jpg 2>&1):
   app/controllers/upload_controller.rb:186:in `process_upload'
   app/middleware/flash_session_cookie_middleware.rb:17:in `call'
   app/middleware/flash_session_cookie_middleware.rb:17:in `call'

...
...

Errno::ENOMEM (Cannot allocate memory - export LANG=C && mogrify -resize "120x180" -gravity "Center" -extent "120x120" /tmp/mini_magick20111219-18047-155ofje.jpg 2>&1):
   app/controllers/upload_controller.rb:186:in `process_upload'
   app/middleware/flash_session_cookie_middleware.rb:17:in `call'
   app/middleware/flash_session_cookie_middleware.rb:17:in `call'
Run Code Online (Sandbox Code Playgroud)

内存和交换空间信息:

Mem:   8193476k total,  7907152k used,   286324k free,     5968k buffers
Swap: …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-3 carrierwave minimagick

7
推荐指数
1
解决办法
5797
查看次数

将参数传递给上传器/从上传器中访问模型的属性/让用户选择缩略图大小

我想将图像裁剪为用户从列表中选择的大小(例如100x100px,200x200px,...)如何将该属性传递给上传器或从上传器中获取模型的属性?

从上传器中访问模型的属性如下所示不起作用:

version :thumb do
    thumbnail_size = model.thumbnail_size
    ...
    ...
end
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未定义的局部变量或方法`model'for#

谢谢!弗洛里安

ruby-on-rails-3 carrierwave

2
推荐指数
1
解决办法
1327
查看次数