Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails目录中启动sidekiq和在现有rails进程(如控制台)中使用fork有什么区别_Ruby On Rails_Sidekiq_Rails Console - Fatal编程技术网

Ruby on rails 在rails目录中启动sidekiq和在现有rails进程(如控制台)中使用fork有什么区别

Ruby on rails 在rails目录中启动sidekiq和在现有rails进程(如控制台)中使用fork有什么区别,ruby-on-rails,sidekiq,rails-console,Ruby On Rails,Sidekiq,Rails Console,相同的命令在项目目录中工作 对我来说,这似乎是类似于bin路径的问题,但我找不到任何与此相关的主题。谢谢你的帮助 Ruby:2.5.3,Rails:4.2.11.1,Sidekiq:5.2.7 ent:1.8.1本质上,分叉进程很可能不会继承与运行控制台相同的环境,因此bundler无法加载正确的gems,因此无法找到selenium webdriver-您可以通过在命令中添加Rails环境变量来修复它,例如 $ rails console [1] pry(main)> fork { e

相同的命令在项目目录中工作

对我来说,这似乎是类似于bin路径的问题,但我找不到任何与此相关的主题。谢谢你的帮助


Ruby:2.5.3,Rails:4.2.11.1,Sidekiq:5.2.7 ent:1.8.1

本质上,分叉进程很可能不会继承与运行控制台相同的环境,因此bundler无法加载正确的gems,因此无法找到selenium webdriver-您可以通过在命令中添加Rails环境变量来修复它,例如

$ rails console

[1] pry(main)> fork { exec "bundle exec sidekiq -c 3 crawling_jobs -t 1 -L log/sidekiq.log" }
=> 7306

bundler: failed to load command: sidekiq (/Users/raducroitoru/.rbenv/versions/2.5.3/bin/sidekiq)
LoadError: cannot load such file -- selenium-webdriver
我说可能是因为您的控制台env Rails.env可能也没有用于selenium webdriver的gem组


虽然你的问题涉及到从控制台启动它,是否有理由需要从现有rails进程而不是从shell执行此操作?

是否可以将您的Gemfile添加到问题中-您正在运行的环境似乎没有加载selenium,例如,从selenium webdriver gem,该命令已与rails_ENV={rails.ENV}一起使用但你的回答让我意识到了文件中的分组。我将gem放在测试组中,而在本例中,RAILS_ENV正在转移。我不想从控制台启动它,它只是一个示例。我必须根据用户的需求启动它,以便在登台时对一些临时队列进行处理。此处没有生产主管:
fork { exec "RAILS_ENV=#{Rails.env} bundle exec sidekiq -c 3 crawling_jobs -t 1 -L log/sidekiq.log"