7

我将 Bundler 用于 Capistrano 部署的 Rails 应用程序。我正在尝试添加 DelayedJob gem,但是在我进行部署后远程服务器中缺少 bin/delayed_job 文件。它存在于我的本地机器上。

我尝试手动创建它,bundle binstubs delayed_job但它失败了:There are no executables for the gem delayed_job.

我在这里想念什么?

有问题的宝石是: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

我遇到过同样的问题。delay_job binstub 不是使用 bundler 生成的,而是使用 rails 生成器生成的。防止 bin 目录在 capistrano 部署期间被符号链接。从此更改 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 generate delayed_job。

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

于 2014-04-02T06:09:51.817 回答