我的 Rails 应用程序有许多任务被卸载到后台进程中,例如调整图像大小和上传到 S3。我正在使用delayed_job来管理这些流程。
这些过程,尤其是缩略图 PDF(使用 Ghostscript)和调整图像大小(使用 ImageMagick)是 CPU 密集型的,并且通常会消耗 100% 的 CPU 时间。由于这些作业与 Web 应用程序本身以及 DB 在同一台(RedHat Linux)服务器上运行,它们可能导致我们的 Web 应用程序无响应。
一种解决方案是让另一台服务器仅在其上运行后台作业。我想这将是最佳解决方案?但是,由于这不是我可以立即做的事情,我想知道是否有可能以某种方式使后台作业以较低的操作系统优先级运行,从而在工作中消耗更少的 CPU 周期?
想法赞赏。