Pull rank_videos into seperate thread

pull/3/head
Omar Roth 7 years ago
parent a017f4cc30
commit 5159ec0f6e

@ -109,26 +109,36 @@ threads.times do
end end
end end
macro templated(filename) top_videos = [] of Video
render "src/views/#{{{filename}}}.ecr", "src/views/layout.ecr"
end
get "/" do |env| spawn do
loop do
top = rank_videos(PG_DB, 120) top = rank_videos(PG_DB, 120)
client = get_client(pool)
args = [] of String args = [] of String
1..(top.size - 1).times { |i| args << "($#{i + 1}), " } 1..(top.size - 1).times { |i| args << "($#{i + 1}), " }
args << "($#{top.size}) " args << "($#{top.size}) "
args = args.join("") args = args.join("")
videos = [] of Video
PG_DB.query("SELECT * FROM videos d INNER JOIN (VALUES #{args}) v(id) USING (id)", top) do |rs| PG_DB.query("SELECT * FROM videos d INNER JOIN (VALUES #{args}) v(id) USING (id)", top) do |rs|
rs.each do rs.each do
video = rs.read(Video) video = rs.read(Video)
videos << video top_videos << video
end end
end end
pool << client
sleep 5.minutes
end
end
macro templated(filename)
render "src/views/#{{{filename}}}.ecr", "src/views/layout.ecr"
end
get "/" do |env|
templated "index" templated "index"
end end
@ -259,7 +269,7 @@ get "/:path" do |env|
end end
error 500 do |env| error 500 do |env|
"Error 500" templated "index"
end end
public_folder "assets" public_folder "assets"

@ -2,7 +2,7 @@
<title>Invidious</title> <title>Invidious</title>
<% end %> <% end %>
<% videos.each_slice(4) do |slice| %> <% top_videos.each_slice(4) do |slice| %>
<div class="pure-g"> <div class="pure-g">
<% slice.each do |video| %> <% slice.each do |video| %>
<% player_response = JSON.parse(video.info["player_response"]) %> <% player_response = JSON.parse(video.info["player_response"]) %>

Loading…
Cancel
Save