【问题标题】:Tweetstream rake works in dev, but will not work on herokuTweetstream rake 在 dev 中有效,但在 heroku 上无效
【发布时间】:2014-07-20 12:53:33
【问题描述】:

我正在运行 rails 4, 红宝石 2.1.1, 网砖, 赫罗库, 推文。

我有一个 rake 文件,可以流式传输推文并将它们保存到数据库中,它在开发中运行良好。

当我在 Heroku 中运行 rake 文件时,它只是在进入流循环时挂起...... 日志只是说“等待客户端”,然后挂起。

以前从未使用过调度程序或 rake。
我怎样才能调试这个,找出问题,查看来自 twitter 的响应?我应该发布哪些附加信息?哪些设置可能导致此问题?

heroku 日志

014-07-17T05:08:26.334130+00:00 heroku[api]: Starting process with command `bundle exec rake tweet_stream` by user@email.com
2014-07-17T05:08:30.027406+00:00 heroku[run.5680]: State changed from starting to up
2014-07-17T05:08:29.884399+00:00 heroku[run.5680]: Starting process with command `bundle exec rake tweet_stream`
2014-07-17T05:08:29.842136+00:00 heroku[run.5680]: Awaiting client

宝石文件

source 'https://rubygems.org'
gem 'pry'
gem 'tweetstream'
gem 'rickshaw_rails'

gem 'twitter'
gem 'figaro'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.0'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer',  platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more:         https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0',          group: :doc

# Spring speeds up development by keeping your application running in the background. Read     more: https://github.com/rails/spring
gem 'spring',        group: :development

gem 'rails_12factor', group: :production
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
ruby "2.1.0"

【问题讨论】:

  • 尝试查看@heroku log,在终端输入“heroku log”
  • 发布的日志和 gemfile
  • 嘿,你在并排运行守护进程。
  • 不,我是用调度器来运行一个rake任务,因为它是一个扩展连接,这可能是问题吗?
  • 我不知道你可能想尝试不同的解决方案。!!

标签: heroku ruby-on-rails-4 scheduler rakefile tweetstream


【解决方案1】:

已修复!原来 rake 文件无法从 Rails 外部访问该类。我在实际的 rake 文件中添加了一些要求和活动记录类。推文流文档中没有明确指出这一点(仅在守护进程中)。

在开发中一切正常...令人困惑,因为使用 tweetstream 的日志和错误处理不完整。我最终使用 twitter gem 进行流式传输,它确实具有更好的错误处理能力。仍然必须每次都推到heroku进行测试。

仍然想知道在生产环境中调试 rake 文件的更好方法。

如果您在工作人员、heroku 调度程序或 rake 方面遇到类似问题,这里有一些有用的链接。

write to database with tweetstream daemon

最重要的 如何在 Rails 之外的 ruby​​ 脚本中使用 ActiveRecord? How to use ActiveRecord in a ruby script outside Rails?

【讨论】:

    猜你喜欢
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 2022-07-24
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多