【发布时间】:2014-03-18 23:43:14
【问题描述】:
它们如何协同工作?我们还需要编写线程安全的代码吗?
如果我们有一个已经同时使用 sidekiq 和 unicorn 的应用程序,迁移到 puma 是否有意义?还是开始使用resque?
【问题讨论】:
-
我很好奇,这些白痴名字的负责人是谁?
标签: multithreading unicorn sidekiq
它们如何协同工作?我们还需要编写线程安全的代码吗?
如果我们有一个已经同时使用 sidekiq 和 unicorn 的应用程序,迁移到 puma 是否有意义?还是开始使用resque?
【问题讨论】:
标签: multithreading unicorn sidekiq
使用多线程应用服务器和异步作业框架通常比多进程服务器更有效,尤其是在您有 I/O 受限工作集的情况下。
如果您将 Unicorn 用作应用服务器并将 Sidekiq 用作后台作业系统,则需要确保您的 Rails 应用和代码是线程安全的。 Rails 3.x/4.x 中的大多数线程安全问题涉及类加载或共享资源,如数据库连接——这对于您的前端应用程序服务器代码和后台作业都是常见的。
您可以在此处找到有关 Rails 线程安全和连接池配置的更多信息:http://guides.rubyonrails.org/configuring.html 简短摘要是确保为类加载启用线程安全模式并提供比活动线程数略大的连接池。
【讨论】: