【发布时间】:2017-12-20 06:24:32
【问题描述】:
我只想在服务器启动时运行 ftp 侦听器类,而不是在控制台、生成器、dbconsole、test、destroy、runner 和 rake 命令运行时运行。
我发现有些人使用 defined? Rails::Generators 之类的检查对 rails 3 和 4 做同样的事情,但我无法让它在 rails 5 中工作,我没有通过定义的检查获得任何回报。
【问题讨论】:
我只想在服务器启动时运行 ftp 侦听器类,而不是在控制台、生成器、dbconsole、test、destroy、runner 和 rake 命令运行时运行。
我发现有些人使用 defined? Rails::Generators 之类的检查对 rails 3 和 4 做同样的事情,但我无法让它在 rails 5 中工作,我没有通过定义的检查获得任何回报。
【问题讨论】:
config.ru 文件仅由 Web 服务器使用,不会由控制台脚本、rake 任务甚至您的测试套件加载。你放在那里的内容只有在服务器实例启动时才会执行。
Web 服务器本身也有办法做到这一点。例如,当您使用 Puma 时,有像 on_worker_boot 或 after_worker_boot 这样的钩子可能会有所帮助(http://www.rubydoc.info/github/puma/puma/Puma/Configuration/DSL)。
但是,我建议将其集成到您部署的服务器环境中,并在 Rails 应用程序之外。
【讨论】: