1

我正在使用瘦服务器 + 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 则几千个插入(这意味着该条目不存在)

4

1 回答 1

1

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

如果是这样,

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

于 2013-02-09T15:21:26.123 回答