Ensure clients are recycled properly
This commit is contained in:
parent
a27c556904
commit
ecb1999795
1 changed files with 12 additions and 7 deletions
|
@ -63,7 +63,11 @@ threads.times do
|
|||
ids << id
|
||||
end
|
||||
|
||||
pool << client
|
||||
|
||||
loop do
|
||||
client = get_client(pool)
|
||||
|
||||
if ids.empty?
|
||||
search(random.base64(3), client) do |id|
|
||||
ids << id
|
||||
|
@ -72,10 +76,9 @@ threads.times do
|
|||
|
||||
if rand(300) < 1
|
||||
pool << make_client(URL, CONTEXT)
|
||||
client = get_client(pool)
|
||||
end
|
||||
|
||||
time = Time.now
|
||||
|
||||
begin
|
||||
id = ids[0]
|
||||
video = get_video(id, client, PG_DB)
|
||||
|
@ -104,7 +107,7 @@ threads.times do
|
|||
end
|
||||
end
|
||||
|
||||
# io << Time.now << " 200 GET www.youtube.com/watch?v=" << video.id << " " << elapsed_text(Time.now - time) << "\n"
|
||||
pool << client
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -113,7 +116,7 @@ top_videos = [] of Video
|
|||
|
||||
spawn do
|
||||
loop do
|
||||
top = rank_videos(PG_DB, 120)
|
||||
top = rank_videos(PG_DB, 40)
|
||||
client = get_client(pool)
|
||||
|
||||
args = [] of String
|
||||
|
@ -121,16 +124,18 @@ spawn do
|
|||
args << "($#{top.size}) "
|
||||
args = args.join("")
|
||||
|
||||
videos = [] of Video
|
||||
|
||||
PG_DB.query("SELECT * FROM videos d INNER JOIN (VALUES #{args}) v(id) USING (id)", top) do |rs|
|
||||
rs.each do
|
||||
video = rs.read(Video)
|
||||
top_videos << video
|
||||
videos << video
|
||||
end
|
||||
end
|
||||
|
||||
pool << client
|
||||
top_videos = videos
|
||||
|
||||
sleep 5.minutes
|
||||
pool << client
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue