7

Capistrano によってデプロイされた Rails アプリに Bundler を使用しています。DelayedJob gem を追加しようとしていますが、デプロイ後に bin/delayed_job ファイルがリモート サーバーにありません。それは私のローカルマシンに存在します。

手動で作成しようとしましbundle binstubs delayed_jobたが、次のように失敗します:There are no executables for the gem delayed_job.

ここで何が欠けていますか?

問題の gem は、Bundler 1.3.5、Capistrano 3.1.0、DelayedJob 4.0.0、Rails 4.0.2 です。

編集: これが私の完全な Gemfile です: http://pastebin.com/WuE3eJrj

4

2 に答える 2

12

同じ問題がありました。delayed_job binstub は bundler ではなく、rails generator で生成されます。capistrano のデプロイ中に bin ディレクトリがシンボリック リンクされないようにします。config/deploy.rb を次から変更します。

set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}

set :linked_dirs, %w{log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}

次に、バンドラーを使用してローカルですべての binstub を再生成しました

bundle install --binstubs

今、delayed_job ジェネレーターを実行しました

bundle exec rails g delayed_job

すべてをチェックインして、再度デプロイします。

于 2014-05-15T15:55:45.813 に答える
5

gem "daemons"ドキュメントによると、を含める必要があると思います:

これを行うには、gem「デーモン」を Gemfile に追加し、rails generatedelayed_job を実行したことを確認します。

https://github.com/collectiveidea/delayed_job#running-jobs

于 2014-04-02T06:09:51.817 に答える