我希望在我在生产环境中运行此rake任务(到登台应用程序时)获得将日志记录到终端的答案。
我创建了一个rake任务来更新数据库中的现有记录。我先在本地尝试,然后迅速工作,并得到了想要的输出。在本地,我有4295曲目。现在,我试图在具有17,418轨道的登台数据库上运行此代码。
我运行heroku run rake db:track_rank -a staging-appname
并得到了这个:
Running `rake db:track_rank` attached to terminal... up, run.8608 Connecting to database specified by DATABASE_URL ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Starting the New Relic agent in "production" environment. ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : To prevent agent startup add a NEWRELIC_AGENT_ENABLED=false environment variable or modify the "production" section of your newrelic.yml. ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Reading configuration from config/newrelic.yml ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Environment: production ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : No known dispatcher detected. ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Application: Marmoset Music ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : delayed_job not available: No DJ worker present ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing Sinatra instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing Dalli Memcache instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing Net instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing deferred Rack instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing Rack::Builder middleware instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing Rails 3+ middleware instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing ActiveRecord instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing legacy Excon instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing DelayedJob instrumentation [part 1/2] ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing Rails 3 Controller instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing Rails 3.1/3.2 view instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Installing Rails3 Error instrumentation ** [NewRelic][03/11/15 18:04:40 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Finished instrumentation ** [NewRelic][03/11/15 18:04:41 +0000 49202e1b-0783-4094-bf1a-969e03b61bab (3)] INFO : Reporting to: https://rpm.newrelic.com/accounts/375675/applications/2431422 Updating track's rank points in group #1 Dalli/SASL authenticating as 021dd5 Dalli/SASL: 021dd5
它已经坐在那里大约12分钟了,所以我不确定它实际上是否在对“第1组”进行任何操作。
如何获取一些日志到终端以查看发生了什么?
这是我的耙任务:
desc "Updates all exisiting tracks rank"
namespace :db do
task :track_rank => :environment do
batch_index = 1
puts "Updating track's rank points in group ##{batch_index}"
three_weeks_ago = 21.days.ago.to_date
Track.find_in_batches do |group|
group.each do |track|
listens = track.listens_count
downloads = track.downloads_count
purchases = track.purchases_count
staff_pick = 0
new_track = 0
if track.staff_pick?
staff_pick += 1
end
if track.created_at.to_date > three_weeks_ago
new_track += 2000
end
downloads *= 60
purchases *= 150
staff_pick *= 1000
rank_total = listens + downloads + purchases + staff_pick + new_track
if rank_total > 0
track.increment!(:rank, by = rank_total)
end
end
batch_index +=1
end
puts "Tracks updated!"
end
end
我希望在生产中(运行到登台应用程序)运行此rake任务时获得将日志记录到终端的答案。我创建了一个rake任务来更新数据库中的现有记录。我先在本地尝试过,然后...
最简单的方法是让Rails明确记录rake任务的进度和/或结果。只需更改此:
运行heroku logs
[Heroku似乎在记录耙任务时遇到问题。为了避免这种情况,您需要以分离模式运行rake任务。