AWS - Elastic Beanstalk Sidekiq无法自动启动

时间:2016-08-15 02:49:07

标签: ruby-on-rails ruby-on-rails-4 amazon-web-services sidekiq amazon-elastic-beanstalk

嘿,我在AWS Elastic Beanstalk实例上运行rails应用程序,并且使用Sidekiq进行后台作业遇到了几个问题。我使用Sidekiq发送欢迎和密码重置电子邮件。

应用程序正在运行Rails 4.2.3。 Elastic Beanstalk实例正在运行64bit Amazon Linux 2015.03 v2.0.1 running Ruby 2.2 (Puma)。我使用以下tutorial在Elastic Beanstalk上设置Redis节点和Sidekiq,并使用以下GIST中的sidekiq.config放置在我的.ebextentions内{1}}文件夹。我没有使用GIST中任何其他推荐的配置文件。

一切似乎都没有顺利。应用程序正确部署,任何日志都没有错误。但是,当我创建新用户时,触发欢迎电子邮件,电子邮件无法发送。我检查了Sidekiq网络应用程序,看来我的工作已安排但从未执行过。在进一步检查时,我确定Sidekiq实际上并没有运行。我通过SSH连接到EC2实例并手动运行bundle exec sidekiq并发送电子邮件。

由于某些原因Sidekiq在部署应用程序时无法运行。

以下是我sidekiq.config的内容:

# Sidekiq interaction and startup script
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/50_restart_sidekiq":
    mode: "000755"
    content: |
      #!/bin/bash

      . /opt/elasticbeanstalk/containerfiles/envvars

      PIDFILE=$EB_CONFIG_APP_PIDS/sidekiq.pid

      cd $EB_CONFIG_APP_CURRENT

      if [ -f $PIDFILE ]
      then
        SIDEKIQ_LIVES=$(/bin/ps -o pid= -p `cat $PIDFILE`)
          if [ -z $SIDEKIQ_LIVES ]
          then
             rm -rf $PIDFILE
          else
             kill -TERM `cat $PIDFILE`
             sleep 10
             rm -rf $PIDFILE
          fi
      fi

      BUNDLE=/usr/local/bin/bundle
      SIDEKIQ=/usr/local/bin/sidekiq

      $BUNDLE exec $SIDEKIQ \
        -e production \
        -P /var/app/containerfiles/pids/sidekiq.pid \
        -C /var/app/current/config/sidekiq.yml \
        -L /var/app/containerfiles/logs/sidekiq.log \
        -d

  "/opt/elasticbeanstalk/hooks/appdeploy/pre/03_mute_sidekiq":
    mode: "000755"
    content: |
      #!/bin/bash

      . /opt/elasticbeanstalk/containerfiles/envvars

      PIDFILE=$EB_CONFIG_APP_PIDS/sidekiq.pid

      if [ -f $PIDFILE ]
      then
        SIDEKIQ_LIVES=$(/bin/ps -o pid= -p `cat $PIDFILE`)
          if [ -z $SIDEKIQ_LIVES ]
          then
             rm -rf $PIDFILE
          else
             kill -USR1 `cat $PIDFILE`
             sleep 10
          fi
      fi

我错过了什么?我需要将其他文件添加到.ebextentions文件夹吗?为什么没有Sidekiq被启动?

0 个答案:

没有答案