【问题标题】:Pages stop responding with ruby on rails and mysql页面停止响应 ruby​​ on rails 和 mysql
【发布时间】:2013-02-08 22:11:33
【问题描述】:

我正在使用瘦服务器 + Ruby on Rails + Mysql,并且我有几个 cronjobs 每小时对数据库进行大量处理(脚本大约需要 1-2 分钟才能完成)。

当 cronjobs 运行时,网站停止加载,仅在 cronjob 完成后响应。

所以我的问题是,我怎样才能使一切独立、异步或并行,以便在 cronjobs 运行时网站正常加载。

非常感谢任何指向指南或一般建议的链接。

更新:

很抱歉我不能分享 cronjob 的代码,但基本上它会执行数千个请求,例如:

SELECT 1 AS one FROM `table` WHERE `table`.`type_id` = BINARY '1251625345_4146645145056' LIMIT 1

如果前一个返回 null 则有几千个插入(这意味着该条目不存在)

【问题讨论】:

  • cronjob 是做什么的?可以分享一下这段代码吗?
  • 我已经编辑了问题,添加了一些解释。

标签: mysql ruby-on-rails performance thin


【解决方案1】:

您的 cron 工作是否要求 Rails 应用程序执行这些选择/插入?

如果是这样,

Thin 是单线程 Web 服务器。它不能同时处理多个请求。您的 cronjob 应该启动另一个 Ruby 进程(例如 Rake 任务)来完成这项工作。

【讨论】:

  • 嗨!我对 rake 任务和 ruby​​ 进程进行了一些谷歌搜索,结果发现使用 wget 运行脚本是一个坏主意。我现在创建了几个从 cronjob 运行的 rake 任务,例如“cd /to/directory && rake task:name”,到目前为止,一切似乎都与主站点无关。谢谢!
猜你喜欢
  • 2016-05-04
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 2013-02-01
  • 1970-01-01
  • 2016-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多