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

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

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

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

Sinatra

Sinatraは、Rubyで作られた オープンソースのWebアプリケーションフレームワークです。

Q&A

1回答

1835閲覧

sinatraで定期タスクを実装したい

kozica

総合スコア58

Ruby

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

Sinatra

Sinatraは、Rubyで作られた オープンソースのWebアプリケーションフレームワークです。

0グッド

0クリップ

投稿2018/11/05 06:06

編集2018/11/05 08:02

sinatraを使用し、定期タスクを実装したいです。
具体的には、毎日日付が変わるタイミングである処理を実行するようにしたいです。

ある処理とは、getリクエストを送りjsonデータを取得するような単純なものです。

railsだと wheneverなどを使えばできるかと思うのですがsinatraだとどうすればよいのでしょういか?
当方sinatraはほぼ触ったことがなくどのようなディレクトリ構成でどのようにコーディングすればよいかわかりません。

質問がアバウトすぎるかと思いますが、どうかお力を貸して頂きたいです。

現状のディレクトリ構成
sinatra/myapp.rb
sinatra/views/index.erb

$vi sinatra/myapp.rb require 'sinatra' require 'sinatra/reloader' require 'net/https' require 'uri' require 'json' require 'csv' def traffic #ここでGetリクエストを投げJSONを取得する end get '/' do traffic @title = "Hello world" @subtitle = "Welcome to the world of sinatra and ruby!" erb :index end

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

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

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

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

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

guest

回答1

0

whenever は特にRailsに特化したものではありませんよ。単純にcrontabにジョブを設定するためのRuby DSLを提供するためのものです。

https://github.com/javan/whenever

公式ドキュメントにもあるように、 wheneverize . すればフォルダとファイルを自動的に生成してくれます。

投稿2018/11/05 06:46

mather

総合スコア6753

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

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

kozica

2018/11/05 07:59

そうだったのですね! ただ、添付されたURLを参照しましたが、sinatraだとどういうディレクトリ構成になるかよくわからないのですが、記載して頂くことはできないでしょうか? URL見る限り、最初から”app/”や”config/"などがありrails上の話をしているように見る受けられので、これがsinatraだとどういう風になるかわからないです。 現状のディレクトリ構成を投稿に追記致します。
mather

2018/11/05 08:15

Railsだとconfigディレクトリがすでにあるから…と思っているのだと思いますが、その流儀に合わせているだけで、そもそもSinatraでconfigディレクトリがあってはならない、という決まりもないですよね。 sinatraディレクトリの下で wheneverize . を実行すればconfigディレクトリを作成できると思います。
kozica

2018/11/05 08:46

なるほど、、、基本概念が理解不足でした。 "wheneverize ."を実行したところconfig/schedule.rbが出来ました。 ここに記述するのはわかるのですが、書き方を調べてみても具体的に書いてるサイトが見つけれません、、、 cronで実行したいことはmyapp.rbのtrafficメソッドを実行したいです。 その場合はどのように記述すればよいでしょうか? ```ruby every 5.minute do #ココにどう記述すればよいかわからない end ```
kozica

2018/11/05 09:19

メソッドを実行したいので runner "" と記述するのかと思いましたが、記述の仕方が悪いのか実行されないです。
mather

2018/11/06 02:08 編集

READMEを翻訳しながらでもいいのでよく読みましょう。 例がたくさん掲載されています。こちらは確認しましたか? https://github.com/javan/whenever#example-schedulerb-file ところで定期実行したいタスクはwheneverなどで動かす必要があるものでしょうか。 cron-job.orgなどの利用も検討してみてはいかがでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問