当前位置: 首页 > 面试题库 >

Heroku错误:ArgumentError:无效的URI方案''

闻人和泽
2023-03-14
问题内容

我正在尝试让我的Rails应用程序通过Sidekiq处理后台作业,并将Sidekiq与Redoku上的Redis连接。这是我的Procfile

web: bundle exec puma -C config/puma.rb
worker: bundle exec -C config/sidekiq.yml

这是我的Sidekiq.rb初始化器文件:

require 'sidekiq'

Sidekiq.configure_client do |config|  
  config.redis = { url: ENV['REDIS_PROVIDER'] }
end

Sidekiq.configure_client do |config|  
   config.redis = { url: ENV['REDIS_PROVIDER'] }
end

REDIS_PROVIDER变量REDISTOGO_URL在Heroku中设置为。按照此处提供的说明,我还添加了一个初始化器文件redis.rb。这里是内容:

uri = URI.parse(ENV["REDIS_PROVIDER"])
REDIS = Redis.new(:url => uri)

我收到以下错误,不确定如何解决。Heroku也抛出H10错误

[3] ! Unable to load application: ArgumentError: invalid uri scheme '

/app/vendor/bundle/ruby/2.2.0/gems/redis-3.3.0/lib/redis/client.rb:416:in `_parse_options': invalid uri scheme '' (ArgumentError)

更新:

我在Heroku上回滚到以前的版本,并从gemfile中删除了redis gem,删除了redis
intializer文件,并且该应用程序不再崩溃。但是,后台作业仍然无法正常工作,并且我在日志中收到以下错误:

heroku/worker.1:  Starting process with command `bundle exec -C config/sidekiq.yml`
heroku/worker.1:  State changed from starting to up
app/worker.1:  bundler: command not found: -C 
heroku/worker.1:  Process exited with status 127 
heroku/worker.1:  State changed from up to crashed 
app/worker.1:  Install missing gem executables with `bundle install`

为什么系统不接受config参数导致工作程序崩溃?

无效的uri方案的错误仍然存​​在:

app/web.1:  Completed 500 Internal Server Error in 303ms (ActiveRecord: 0.0ms) 
app/web.1:  ArgumentError (invalid uri scheme ''):

sidekiq.yml文件

# Sample configuration file for Sidekiq.
# Options here can still be overridden by cmd line args.
# Place this file at config/sidekiq.yml and Sidekiq will
# pick it up automatically.
---
:verbose: false
:concurrency: 10

# Set timeout to 8 on Heroku, longer if you manage your own systems.

:超时:8

# Sidekiq will run this file through ERB when reading it so you can
# even put in dynamic logic, like a host-specific queue.
# http://www.mikeperham.com/2013/11/13/advanced-sidekiq-host-specific-queues/
:queues:
  - critical
  - default
  - low

# you can override concurrency based on environment

生产::并发:25阶段::并发:10


问题答案:

您使用REDIS_PROVIDER的方式不正确。请再次查看文档。

https://github.com/mperham/sidekiq/wiki/Using-Redis#using-an-env-
variable



 类似资料:
  • 我试图使用spotifyr包从Spotify中提取数据,但是任何需要访问令牌的功能都不起作用(例如get_my_recently_played(限制=5))。当我运行它时,我得到以下错误:INVALID_CLIENT:无效的重定向URI。 我甚至试着去我的应用程序,把重定向URI改成'http://localhost:8888/callback/“但它仍然给出了同样的错误。我会错过什么?非常感谢。

  • 当我插入命令git push heroku master以便在eroku中部署时,会出现以下错误 下面是我的pom.xml 我找过类似的问题,但没有解决我的问题,我甚至在我的属性中添加了: 我正在按照本教程https://dashboard.heroku.com/apps/candidate-manager-api/deploy/heroku-git的步骤进行操作 我该怎么解决这个?

  • 我正在制作一个包含Spotify集成的应用程序,我被跟踪了这个链接https://developer.spotify.com/technologies/spotify-android-sdk/tutorial/ 通过引用此链接,我被置于“festevo://callback“作为回调重定向URI 当我试图登录Spotify时,每次我都遇到同样的错误。 请告诉我为什么会这样。。。 非常感谢。

  • 问题内容: 尝试运行声纳测试,但失败了: 我的jenkins控制台输出: 如何解决此错误信息? 问题答案: 我看到错误: 您通过以下步骤开始了该过程: 确保翻一番,以使找到实际的文件夹。 那是: 有关更多信息,请参见分析源代码/分析参数。 该OP巴达尔·辛格的报告中评论: 这是由于我在文件中提到的文件夹路径错误

  • 问题内容: 我正在做一些计算,但无法将字符串解析为int甚至是float。我寻找解决方案,并且在某个必须有空字符串的地方读取了它,但是我使用 及其打印的值证明该字符串不为空。 这是 logcat java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.farrukh.bmi / com.example.farrukh.bmi.Main

  • 我正在进行一些计算,但无法将字符串解析为int或float。我搜索了解决方案,并在某个地方读到了它,其中肯定有一个空字符串,但我检查了我的editText,使用 和它的打印值证明字符串不是空的..我错过了什么? java.lang.RuntimeException:无法启动activity ComponentInfo{com.example.farrukh.bmi/com.example.farr