Sha256: e30fa5dc189b923feedafddde17256c4ceced593feef189fd64d10326927e342

Contents?: true

Size: 892 Bytes

Versions: 7

Compression:

Stored size: 892 Bytes

Contents

class SessionCleanerTask < Scheduler::SchedulerTask
  environments :all
  
  every '1d', :first_at => Chronic.parse('next 2 am')
  
  def run
    remove_old_sessions
  end
  
  def remove_old_sessions
    log "running the session cleaner"
    if ActionController::Base.session_store == session_store_class
      ActiveRecord::Base.connection.execute("DELETE FROM #{session_table_name} WHERE updated_at < '#{7.days.ago.to_s(:db)}'")
      log "old sessions are gone!"
    else
      log "sessions are not stored in the database; nothing to do."
    end
  end

  def session_store_class
    return ActiveRecord::SessionStore if defined?(ActiveRecord::SessionStore)
    # pre rails 2.3 support...
    return CGI::Session::ActiveRecordStore if defined?(CGI::Session::ActiveRecordStore)
  end

  def session_table_name
    ActiveRecord::Base.pluralize_table_names ? :sessions : :session
  end
end

Version data entries

7 entries across 7 versions & 3 rubygems

Version Path
scheduler_daemon-1.1.6 lib/scheduler_daemon/rails/generators/scheduler/templates/lib/scheduled_tasks/session_cleaner_task.rb
scheduler_daemon-1.1.5 lib/scheduler_daemon/rails/generators/scheduler/templates/lib/scheduled_tasks/session_cleaner_task.rb
scheduler_daemon_3lancers-1.1.5 lib/scheduler_daemon/rails/generators/scheduler/templates/lib/scheduled_tasks/session_cleaner_task.rb
scheduler_daemon-1.1.3 lib/scheduler_daemon/rails/generators/scheduler/templates/lib/scheduled_tasks/session_cleaner_task.rb
scheduler_daemon_robertcigan-1.1.3 lib/scheduler_daemon/rails/generators/scheduler/templates/lib/scheduled_tasks/session_cleaner_task.rb
scheduler_daemon-1.1.2 lib/scheduler_daemon/rails/generators/scheduler/templates/lib/scheduled_tasks/session_cleaner_task.rb
scheduler_daemon-1.1.1 lib/scheduler_daemon/rails/generators/scheduler/templates/lib/scheduled_tasks/session_cleaner_task.rb