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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

593閲覧

gem wheneverのschedule.rbの設定の仕方

beta

総合スコア13

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2018/03/28 12:20

前提・実現したいこと

趣味で、Ruby on Railsで占いのサイトを作ろうとしています。
「今日の運勢」で、gem wheneverを使い、で一日一回、占い結果をデータベースに保存させようとしています。
wheneverの設定ファイルでrunnerでのメソッド指定方法でエラーが出ています。
どうやら「runner "~"」の部分が間違っているようで、その部分の書き方をどなたか教えていただけないでしょうか?
正解のコードと、書き方の法則を教えていただけると助かります。

データベースはpostgresqlを使っています。
PCは、windows10 64bitで、ドットインストールの「ローカル開発環境」に従って設定したのでCentOSを使っています。

herokuで公開する予定で、herokuでcronがサポートされていないのは知っていて、herokuではAddOnを使う予定です。
今は、ローカルで定期実行の様子を見たくて、gemのwheneverを使おうとしています。

発生している問題・エラーメッセージ

コマンド:whenever

0 * * * * /bin/bash -l -c 'cd /home/vagrant/uranai && bundle exec bin/rails runn er -e production '''Controller.kyouunseis_today''''

[message] Above is your schedule file converted to cron syntax; your crontab file was not updated.

該当のソースコード

wheneverの設定ファイル config/schedule.rb
every 1.hours do
runner "Controller.kyouunseis_today"
end

一日ごとに定期実行させる予定ですが、テストのために、1時間ごとにしています。

定期実行させたいメソッド app/controllers/kyouunseis_controller.rb
def today
一日一回、占い結果を保存させるコード。 長いので省略しています。
end

試したこと

runner "クラス名.メソッド名"
runner "フォルダ名.ファイル名_メソッド名"
runner "ファイル名.メソッド名"

など、色々な書き方を試してみました。
wheneverやcronの設定方法で検索しても、指定の仕方の法則が説明されている記事が見つからなかったです。

###まとめ
config/schedule.rb の「runner "~"」の書き方の正解と書き方のルールを、分かる方、ご教授お願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

コントローラー名が KyouunseisController で,実行させたいメソッドがそのクラスメソッド today なのであれば,

rb

1runner "KyouunseisController.today"

でいけると思います。

whenever 以前の問題です。

まず rails console で

rb

1KyouunseisController.today

としてそれが期待どおりに動くことを確認するとよいと思います。

投稿2018/03/28 12:38

scivola

総合スコア2108

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

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

beta

2018/03/29 04:56

ありがとうございます。 試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問