Class: SourceMonitor::Dashboard::Queries
- Inherits:
-
Object
- Object
- SourceMonitor::Dashboard::Queries
- Defined in:
- lib/source_monitor/dashboard/queries.rb,
lib/source_monitor/dashboard/queries/stats_query.rb,
lib/source_monitor/dashboard/queries/recent_activity_query.rb
Defined Under Namespace
Classes: Cache, RecentActivityQuery, StatsQuery
Instance Method Summary collapse
-
#initialize(reference_time: Time.current) ⇒ Queries
constructor
A new instance of Queries.
- #job_metrics(queue_names: queue_name_map.values) ⇒ Object
- #quick_actions ⇒ Object
- #recent_activity(limit: DEFAULT_RECENT_ACTIVITY_LIMIT) ⇒ Object
- #stats ⇒ Object
- #upcoming_fetch_schedule(pages: {}) ⇒ Object
Constructor Details
Instance Method Details
#job_metrics(queue_names: queue_name_map.values) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/source_monitor/dashboard/queries.rb', line 36 def job_metrics(queue_names: queue_name_map.values) measure(:job_metrics, queue_names:) do summaries = SourceMonitor::Jobs::SolidQueueMetrics.call(queue_names:) queue_name_map.map do |role, queue_name| summary = summaries[queue_name.to_s] || SourceMonitor::Jobs::SolidQueueMetrics::QueueSummary.new( queue_name: queue_name.to_s, ready_count: 0, scheduled_count: 0, failed_count: 0, recurring_count: 0, paused: false, last_enqueued_at: nil, last_started_at: nil, last_finished_at: nil, available: false ) { role: role, queue_name: queue_name, summary: summary } end end end |
#quick_actions ⇒ Object
32 33 34 |
# File 'lib/source_monitor/dashboard/queries.rb', line 32 def quick_actions QUICK_ACTIONS end |
#recent_activity(limit: DEFAULT_RECENT_ACTIVITY_LIMIT) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/source_monitor/dashboard/queries.rb', line 24 def recent_activity(limit: DEFAULT_RECENT_ACTIVITY_LIMIT) cache.fetch([ :recent_activity, limit ]) do measure(:recent_activity, limit:) do RecentActivityQuery.new(limit:).call end end end |
#stats ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/source_monitor/dashboard/queries.rb', line 16 def stats cache.fetch(:stats) do measure(:stats) do StatsQuery.new(reference_time:).call end end end |
#upcoming_fetch_schedule(pages: {}) ⇒ Object
63 64 65 66 67 68 69 |
# File 'lib/source_monitor/dashboard/queries.rb', line 63 def upcoming_fetch_schedule(pages: {}) cache.fetch([ :upcoming_fetch_schedule, pages ]) do measure(:upcoming_fetch_schedule) do SourceMonitor::Dashboard::UpcomingFetchSchedule.new(scope: SourceMonitor::Source.active, pages: pages) end end end |