我是Rails和Puma的新手,所以使用简单的解决方案可能对这个问题太傻了,如果您认为我做错了什么,也请指导我。

我正在尝试与该 worker 一起启动Puma服务器。如果我将 worker 设置为0

puma -w0

服务器启动正常,但是如果我将worker设置为1或更多,则会出现以下错误:
E:\RoR_tryouts\ws_13.11.13\todo>puma -w3
[2120] *** SIGUSR2 not implemented, signal based restart unavailable!
[2120] *** SIGUSR1 not implemented, signal based restart unavailable!
[2120] Puma starting in cluster mode...
[2120] * Version 2.7.1, codename: Earl of Sandwich Partition
[2120] * Min threads: 0, max threads: 16
[2120] * Environment: development
[2120] * Process workers: 3
[2120] * Phased restart available
[2120] * Listening on tcp://0.0.0.0:9292

C:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/puma-2.7.1/lib/puma/cluster.rb:229:in `trap': unsupported signal SIGCHLD (ArgumentError)
        from C:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/puma-2.7.1/lib/puma/cluster.rb:229:in `run'
        from C:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/puma-2.7.1/lib/puma/cli.rb:442:in `run'
        from C:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/puma-2.7.1/bin/puma:10:in `<top (required)>'
        from C:/Ruby/Ruby193/bin/puma:23:in `load'
        from C:/Ruby/Ruby193/bin/puma:23:in `<main>'

规范:
  • Windows 7
  • Ruby 1.9.3p448(2013-06-27)[i386-mingw32] MRI Rail 4.0.0 Puma
  • 版本2.7.1,代号:三明治分区伯爵
  • 最佳答案

    引用the Puma README:

    正如它明确指出的那样,Windows不支持集群模式(即运行具有多个工作程序的单个puma实例)和守护程序模式(启动后与Shell分离)。
    您应该使用其他操作系统(例如Linux)或在单工模式下使用Puma。您甚至可以在Windows上手动在不同端口上启动多个Puma实例并在它们之间实现负载平衡。您只需要一个前端负载均衡器,它就没有内置于Puma的 native 集群模式那么无缝。

    关于ruby-on-rails - 与 worker 一起启动Puma服务器时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20801734/

    10-13 02:11