QA@IT

heroku+railsで引数付きのバッチを実行

3437 PV

お世話になります
現在herokuでrailsアプリを作成中に困りごとが発生したので書かせてもらいました
引数なしのバッチは実行できたのですが
引数ありはエラーが出てしまいます

xxxxxxxxxxxxxxx$ heroku run rails runner -e production "Tasks::hogehogeCrawl.execute(2497)"
Running `rails runner -e production Tasks::hogehogeCrawl.execute(2497)` attached to terminal... up, run.9887
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `rails runner -e production Tasks::hogehogeCrawl.execute(2497)'

これはどうしたら回避できるのでしょうか

よろしくお願いします

回答

heroku-toolbelt/3.3.0 (x86_64-darwin10.8.0) ruby/1.9.3 で確認したところ、heroku run に続く引数にシェルでのエスケープが必要な文字がある場合、二重にエスケープが必要なようです。

質問の例なら次のようにすればよいと思います。

$ heroku run rails runner -e production "Tasks::hogehogeCrawl.execute\\(2497\\)"

もっと単純な例で試してみることをおすすめします。

$ heroku run rails runner -e production "p\\(1\\)"

似たケースでIssue も上がってますが、結構前なのにコメントもないので、なかなか直らないかもですね。

編集 履歴 (0)
  • おおお、ありがとうございます!試してみます。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。