Rails。 Puma 在实例化 Google Cloud Text-to-Speech (Windows) 的客户端时停止工作
Rails. Puma stops working when instantiating a client of Google Cloud Text-to-Speech (Windows)
我已将 Ruby 版本从 2.5.x 升级到 2.6.x(并卸载了 2.5.x 版本)。
现在 Puma 服务器在实例化 Google Cloud Text-to-Speech:
的客户端时停止工作
client = Google::Cloud::TextToSpeech.text_to_speech
它只是退出而没有给出错误(在命令提示符中)。并且 'bash' 终端中有一条 'Segmentation fault' 消息。
Puma 配置文件:
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count
port ENV.fetch("PORT") { 3000 }
environment ENV.fetch("RAILS_ENV") { ENV['RACK_ENV'] || "development" }
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
# workers ENV.fetch("WEB_CONCURRENCY") { 2 }
preload_app!
plugin :tmp_restart
与Google Cloud Text-to-Speech 配合使用的方法:
require "google/cloud/text_to_speech"
# Instantiates a client
client = Google::Cloud::TextToSpeech.text_to_speech
...
宝石文件:
gem 'rails', '6.0.1'
gem 'puma', '3.12.2'
gem 'google-cloud-text_to_speech', '1.1.1'
...
OS Windows 10.
我很困惑。我不明白为什么会发生以及如何解决它。
我尝试使用 'puma' 和 'google-cloud-text_to_speech' 的最新 gem 版本,重新安装 Google SDK,但它继续发生。
也许我的凭据有问题?
当 运行 configure
方法(在实例化客户端之前)时,我得到 nil
值:
(byebug) Google::Cloud::TextToSpeech.configure
<Config: endpoint="texttospeech.googleapis.com" credentials=nil scope=nil lib_name=nil lib_version=nil interceptors=nil timeout=nil metadata=nil retry_policy=nil quota_project=nil>
有人可以帮我吗?
尝试重新安装ruby-debug
sudo gem uninstall ruby-debug
sudo gem install ruby-debug
并且,您能否通过包含您的 Gemfile 来扩展您的问题,并且 Gemfile.lock
另一种方法可能是删除 Gemfile.lock 然后 运行 bundle install
rm -rf Gemfile.lock
bundle install
好的,我找到了这个烂摊子的原因。
这与 Ruby 版本更新无关。我 运行 bundle update
在重新安装 Rails 后,它更新了我的 'Gemfile.lock' 文件中的 google-cloud-text_to_speech-v1
和 google-cloud-text_to_speech-v1beta1
版本。对于这些更新版本,我遇到了上面描述的错误。
所以,解决方案是:不要 运行 完成 bundle update
,只更新你需要的确切位置(在我的例子中,我只需要 运行 bundle update mimemagic
为了能够启动 Rails 服务器)。
我已将 Ruby 版本从 2.5.x 升级到 2.6.x(并卸载了 2.5.x 版本)。 现在 Puma 服务器在实例化 Google Cloud Text-to-Speech:
的客户端时停止工作client = Google::Cloud::TextToSpeech.text_to_speech
它只是退出而没有给出错误(在命令提示符中)。并且 'bash' 终端中有一条 'Segmentation fault' 消息。
Puma 配置文件:
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count
port ENV.fetch("PORT") { 3000 }
environment ENV.fetch("RAILS_ENV") { ENV['RACK_ENV'] || "development" }
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
# workers ENV.fetch("WEB_CONCURRENCY") { 2 }
preload_app!
plugin :tmp_restart
与Google Cloud Text-to-Speech 配合使用的方法:
require "google/cloud/text_to_speech"
# Instantiates a client
client = Google::Cloud::TextToSpeech.text_to_speech
...
宝石文件:
gem 'rails', '6.0.1'
gem 'puma', '3.12.2'
gem 'google-cloud-text_to_speech', '1.1.1'
...
OS Windows 10.
我很困惑。我不明白为什么会发生以及如何解决它。 我尝试使用 'puma' 和 'google-cloud-text_to_speech' 的最新 gem 版本,重新安装 Google SDK,但它继续发生。
也许我的凭据有问题?
当 运行 configure
方法(在实例化客户端之前)时,我得到 nil
值:
(byebug) Google::Cloud::TextToSpeech.configure
<Config: endpoint="texttospeech.googleapis.com" credentials=nil scope=nil lib_name=nil lib_version=nil interceptors=nil timeout=nil metadata=nil retry_policy=nil quota_project=nil>
有人可以帮我吗?
尝试重新安装ruby-debug
sudo gem uninstall ruby-debug
sudo gem install ruby-debug
并且,您能否通过包含您的 Gemfile 来扩展您的问题,并且 Gemfile.lock
另一种方法可能是删除 Gemfile.lock 然后 运行 bundle install
rm -rf Gemfile.lock
bundle install
好的,我找到了这个烂摊子的原因。
这与 Ruby 版本更新无关。我 运行 bundle update
在重新安装 Rails 后,它更新了我的 'Gemfile.lock' 文件中的 google-cloud-text_to_speech-v1
和 google-cloud-text_to_speech-v1beta1
版本。对于这些更新版本,我遇到了上面描述的错误。
所以,解决方案是:不要 运行 完成 bundle update
,只更新你需要的确切位置(在我的例子中,我只需要 运行 bundle update mimemagic
为了能够启动 Rails 服务器)。