Class: BigbluebuttonRails::BackgroundTasks

Inherits:
Object
  • Object
show all
Defined in:
lib/bigbluebutton_rails/background_tasks.rb

Overview

Helper methods to execute tasks that run in resque and rake.

Class Method Summary collapse

Class Method Details

.finish_meetingsObject

For each meeting that hasn’t ended yet, call ‘getMeetingInfo` and update the meeting attributes or end it.



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/bigbluebutton_rails/background_tasks.rb', line 8

def self.finish_meetings
  BigbluebuttonMeeting.where(ended: false).find_each do |meeting|
    Rails.logger.info "BackgroundTasks: Checking if the meeting has ended: #{meeting.inspect}"
    room = meeting.room
    if room.present? #and !meeting.room.fetch_is_running?
      # `fetch_meeting_info` will automatically update the meeting by
      # calling `room.update_current_meeting_record`
      room.fetch_meeting_info
    end
  end
end

.update_recordings(server_id = nil) ⇒ Object

Updates the recordings for all servers if ‘server_id` is nil or or for the server with id `server_id`.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/bigbluebutton_rails/background_tasks.rb', line 22

def self.update_recordings(server_id=nil)
  BigbluebuttonServer.find_each do |server|
    begin
      if server_id.nil? || server_id == server.id
        server.fetch_recordings(nil, true)
        Rails.logger.info "BackgroundTasks: List of recordings from #{server.url} updated successfully"
      end
    rescue Exception => e
      Rails.logger.info "BackgroundTasks: Failure fetching recordings from #{server.inspect}"
      Rails.logger.info "BackgroundTasks: #{e.inspect}"
      Rails.logger.info "BackgroundTasks: #{e.backtrace.join("\n")}"
    end
  end
end