Class: RailsOnboarding::OnboardingAnalyticsJob

Inherits:
ApplicationJob
  • Object
show all
Defined in:
lib/rails_onboarding/background_jobs.rb

Instance Method Summary collapse

Methods inherited from ApplicationJob

queue_name

Instance Method Details

#perform(event_name, user_id, data = {}) ⇒ Object



299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
# File 'lib/rails_onboarding/background_jobs.rb', line 299

def perform(event_name, user_id, data = {})
  user = find_user(user_id)
  return unless user

  # Create analytics event
  if defined?(RailsOnboarding::AnalyticsEvent)
    RailsOnboarding::AnalyticsEvent.create!(
      event_name: event_name,
      user_id: user_id,
      event_data: data,
      occurred_at: Time.current
    )
  end

  # Send to external analytics services
  track_external_analytics(event_name, user, data)
rescue StandardError => e
  Rails.logger.error "Failed to track analytics event: #{e.message}"
  # Don't retry analytics events - they're not critical
end