recurring loading working now
This commit is contained in:
@@ -1,4 +0,0 @@
|
||||
class LoadActivitiesJob < ApplicationJob
|
||||
def perform
|
||||
end
|
||||
end
|
||||
13
app/jobs/load_all_activities_job.rb
Normal file
13
app/jobs/load_all_activities_job.rb
Normal file
@@ -0,0 +1,13 @@
|
||||
class LoadAllActivitiesJob < ApplicationJob
|
||||
def perform
|
||||
User.all.each do |user|
|
||||
begin
|
||||
next if user.logins.alive.empty?
|
||||
LoadUserActivitiesJob.perform_later(user)
|
||||
logger.info("Loading for #{user.id} scheduled")
|
||||
rescue StandardError => e
|
||||
Rails.logger.error("Loading for #{user.id} failed: #{e.class} - #{e.message}")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
32
app/jobs/load_user_activities_job.rb
Normal file
32
app/jobs/load_user_activities_job.rb
Normal file
@@ -0,0 +1,32 @@
|
||||
class LoadUserActivitiesJob < ApplicationJob
|
||||
attr_reader :user
|
||||
|
||||
def perform(user)
|
||||
logger.info("Loading for #{user.id} started")
|
||||
@user = user
|
||||
user.logins.alive.each do |login|
|
||||
update_spotify(login)
|
||||
end
|
||||
end
|
||||
|
||||
def update_spotify(login)
|
||||
client = SpotifyClient.new(login)
|
||||
last_spotify_activity_at = latest_activity_iso(login.platform)
|
||||
new_activities = client.load_since(last_spotify_activity_at)
|
||||
create_action = CreateSpotifyActivity.new(user, new_activities)
|
||||
create_action.perform
|
||||
logger.info("Loading for #{user.id} finished with #{new_activities.size} new activities")
|
||||
rescue StandardError => e
|
||||
Rails.logger.error(e)
|
||||
end
|
||||
|
||||
def latest_activity(platform)
|
||||
latest = Activity.where(user: user, platform: platform).order(started_at: :desc).limit(1).last
|
||||
latest.started_at&.to_datetime if latest.present?
|
||||
end
|
||||
|
||||
def latest_activity_iso(platform)
|
||||
latest = latest_activity(platform)
|
||||
latest.strftime("%Q") if latest.present?
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user