質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

解決済

Railsでcronを実行してもファイルを実行できない場合の対処を教えてください。

koume
koume

総合スコア458

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1回答

0リアクション

0クリップ

287閲覧

投稿2018/01/31 05:06

Rails5.1.3でWebアプリケーション制作の勉強をしています。
バッチ処理をしようとcronを使いたのですが以下のように記述しても読み込んで実行してくれないので
対処方法をどなたか教えていただけませんでしょうか?
設定内容は以下になりますが、このコードの記述がおかしいのかと思っていますのでご指摘いただければと思います。

config/application.rbに以下を追記しました。 config.autoload_paths += %W(#{config.root}/lib) config.enable_dependency_loading = true config.autoload_paths << Rails.root.join('lib')
config/schedule.rbの記述内容 set :output, 'log/crontab.log' ENV['RAILS_ENV'] ||= 'development' set :environment, ENV['RAILS_ENV'] set :environment, "development" every 1.day, at: '12pm' do runner "Yesterday.introduction" end every 1.day, at: '13:45pm' do runner "Series.introduction" end
以下を実行しました。 [vagrant@localhost chibi]$ bundle exec whenever 0 12 * * * /bin/bash -l -c 'cd /home/vagrant/chibi/chibi && bundle exec bin/rails runner -e development '\''Yesterday.introduction'\'' >> log/crontab.log 2>&1' 45 13 * * * /bin/bash -l -c 'cd /home/vagrant/chibi/chibi && bundle exec bin/rails runner -e development '\''Series.introduction'\'' >> log/crontab.log 2>&1' ## [message] Above is your schedule file converted to cron syntax; your crontab file was not updated. ## [message] Run `whenever --help' for more options.
以下を実行しました。 [vagrant@localhost chibi]$ bundle exec whenever --update-crontab [write] crontab file updated
以下を実行しました。 [vagrant@localhost chibi]$ crontab -l # Begin Whenever generated tasks for: /home/vagrant/chibi/chibi/config/schedule.rb 0 12 * * * /bin/bash -l -c 'cd /home/vagrant/chibi/chibi && bundle exec bin/rails runner -e development '\''Yesterday.introduction'\'' >> log/crontab.log 2>&1' 45 13 * * * /bin/bash -l -c 'cd /home/vagrant/chibi/chibi && bundle exec bin/rails runner -e development '\''Series.introduction'\'' >> log/crontab.log 2>&1' # End Whenever generated tasks for: /home/vagrant/chibi/chibi/config/schedule.rb

runner Yesterday.introductionとrunner Series.introductionの動作確認はコンソール上で確認できております。

13:45にSeries.introductionを実行させたかったのですが実行されませんでした。

どこが悪さしているのか全くわからなくて困っています。

どなたか教えていただけないでしょうか?宜しくお願いします。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

yatta47

2018/01/31 05:56

パッと見、特におかしそうなことはなさそうに感じますね。log/crontab.logには何か出力されていますか?
koume

2018/01/31 06:11

回答ありがとうございます。質問した後にevery 1.minute doのように1分おきに実行するように記述したところ動いてくれました。every 1.day, at: '13:45pm' doの記述が悪かったということなのでしょうがどこが悪いのかわからないのでご指摘お願いします。
koume

2018/01/31 06:15

追記:log/crontab.logには何も記述されていませんでした。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。