0

我正在将我们的 EB 应用程序从 Amazon Linux 1 迁移到 Amazon Linux 2 平台。

我使用 Amazon 平台:Ruby 2.6 和 Amazon Linux 2 创建了一个 Elastci Beanstalk,并选择 Amazon 示例应用程序作为第一个部署的应用程序。

修改我们的 EB 应用程序的 Gemfile 和部署脚本后,我将新应用程序部署到上述环境。

在 Gemfile 中,ruby、rails、puma 和 resque 更新如下:

ruby '2.6.8'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.1'

# Use Puma as the app server
gem 'puma', '5.3.2'
# For Active Job support with elastic beanstalk
gem 'resque', '~> 2.0.0'
gem 'resque-scheduler', '~> 4.4.0'
...

在我的应用程序中,在部署期间执行以下命令以启动 3 个 resque 工作人员和一个调度程序。

FIRST_WORKER="PIDFILE=$PIDFILE_1 BACKGROUND=yes TERM_CHILD=1 LOGGING=1 /opt/rubies/ruby-2.6.8/bin/bundle exec /opt/rubies/ruby-2.6.8/bin/rake resque:work QUEUES=email"
SECOND_WORKER="PIDFILE=$PIDFILE_2 BACKGROUND=yes TERM_CHILD=1 LOGGING=1 /opt/rubies/ruby-2.6.8/bin/bundle exec /opt/rubies/ruby-2.6.8/bin/rake resque:work QUEUES=priority"
THIRD_WORKER="PIDFILE=$PIDFILE_3 BACKGROUND=yes TERM_CHILD=1 LOGGING=1 /opt/rubies/ruby-2.6.8/bin/bundle exec /opt/rubies/ruby-2.6.8/bin/rake resque:work QUEUES=*"
SCHEDULER="PIDFILE=$PIDFILE_4 BACKGROUND=yes TERM_CHILD=1 LOGGING=1 /opt/rubies/ruby-2.6.8/bin/bundle exec /opt/rubies/ruby-2.6.8/bin/rake resque:scheduler"

分解后,正如我们所料,我可以看到创建了 3 个救援人员,但找不到调度程序。我也可以看到/opt/rubies/ruby-2.6.8/是在环境平台中。

我将结果与 Amazon Linux 1 进行了比较,工作程序和调度程序都是在 Amazon Linux 1 中创建的。

在 Ruby 2.6 和 Amazon Linux 2 中使用 resque:scheduler 时,您是否遇到过同样的问题?

4

0 回答 0