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

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

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

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

Ruby

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

Q&A

解決済

1回答

3886閲覧

railsでWheneverを使って月末の定時処理を行いたい

zendendo

総合スコア43

Ruby on Rails 5

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

Ruby

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

0グッド

0クリップ

投稿2018/03/16 06:44

編集2018/03/16 06:47

ruby on railsで定時処理(バッチ処理)を実装中であり、
Wheneverというcron管理gemを使って「月末日に処理を実行」できるようにしたいと考えています。

現状では、cronに直接記述するのではなく
Wheneverを使って定時処理を管理しています。

cronなら、

0 0 28-31 * * /usr/bin/test $(date -d '+1 day' +%d) -eq 1 && 実行したいコマンド

という風に記述すればいいと思うのですが、
Whenever風(/config/schedule.rb)にはどう記述すればいいのか教えて頂ければ幸いです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まんま移植するならこうでしょうか。

ruby

1every '0 0 28-31 * *' do 2 command "/usr/bin/test $(date -d '+1 day' +%d) -eq 1 && 実行したいコマンド" 3end

一応最新のwheneverだとevery 1.monthと書けるようですが、末日は上記cron風のsyntaxでしかかけないようです。
https://github.com/javan/whenever/blob/1db644e92b5dd6479cceb0f69459f874373c2c09/test/functional/output_at_test.rb#L92

Ruby風に書きたいなら

ruby

1every 1.day do 2 command "cd your_ruby_directory && ruby script.rb" 3end

みたいに書いてRubyのscriptの中でActiveSupportのend_of_monthメソッドで判別とかでしょうか

投稿2018/03/17 05:15

編集2018/03/17 05:17
hiromichinomata

総合スコア294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zendendo

2018/03/19 10:03 編集

回答して頂き、ありがとうございます。 最終的に、 every '0 0 28-31 * *' do command "/usr/bin/test $(date -d '+1 day' +%d) -eq 1 && cd /home/vagrant/railsapp && RAILS_ENV=development bundle exec rails hoge_test:mozi_zikoku --silent >> log/crontab.log 2>&1" end とすることで解決することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問