前提・実現したいこと
Railsでtweetstreamというgemを使ってTweetの収集をする仕組みを作っています。
Rake Taskとして実装し、Herokuのworker Dynoで動かします。
発生している問題
Procfileに worker: bundle exec rails stream_monitor:start
と書いてデプロイ時にworkerを起動するのですが、下記コードの puts "収集スタート"
のログ以降、 client.track(ENV["KEYWORD"])
のブロック内のログがいっこうに出てきません。
エラー検知等のためにログを見たいので、困っています。
※ローカルでは問題なく、一瞬で表示されます
※ブロック内でDBへの追加処理もしていますが、DBには問題なく反映されています
該当のソースコード
ruby
1require 'tweetstream' 2 3namespace :stream_monitor do 4 desc "Monitoring Twitter stream" 5 task start: :environment do 6 7 TweetStream.configure do |config| 8 config.consumer_key = ENV["CONSUMER_KEY"] 9 config.consumer_secret = ENV["CONSUMER_SECRET"] 10 config.oauth_token = ENV["ACCESS_TOKEN"] 11 config.oauth_token_secret = ENV["ACCESS_TOKEN_SECRET"] 12 config.auth_method = :oauth 13 end 14 15 client = TweetStream::Client.new 16 17 puts "収集スタート" 18 19 client.track(ENV["KEYWORD"]) do |tweet| 20 21 # ある処理 22 23 puts "処理結果は○○でした" 24 25 # ある処理 26 27 puts "処理結果は○○でした" 28 29 # ある処理 30 31 puts "処理結果は○○でした" 32 33 Tweet.create(user: tweet.user.screen_name, text: tweet.text) 34 end 35 end 36end
試したこと
ログ用addonのPapertrailの管理画面でもログは出てきません。
heroku logs -t
のログに出てこないので当然ですが。。
また heroku restart worker.1
を実行すると、再起動前のログがまとめて再起動後に表示されます。
補足情報(FW/ツールのバージョンなど)
- Rails 5.1.5
- tweetstream 2.6.1
あなたの回答
tips
プレビュー