# add job scheduler classes here
AudioMixerRetry:
  cron: 0 * * * *
  class: "JamRuby::AudioMixerRetry"
  description: "Retries mixes that set the should_retry flag or never started"

IcecastConfigRetry:
  cron: 0 * * * *
  class: "JamRuby::IcecastConfigRetry"
  description: "Finds icecast servers that have had their config_changed, but no IcecastConfigWriter check recently"

IcecastSourceCheck:
  every:
    - "7s"
  class: "JamRuby::IcecastSourceCheck"
  description: "Finds icecast mounts that need their 'sourced' state to change, but haven't in some time"

JamTracksCleaner:
  cron: "0,30 * * * *"
  class: "JamRuby::JamTracksCleaner"
  description: "Clean up JamTrack related stuff; every 30 minutes"

CleanupFacebookSignup:
  cron: "30 2 * * *"
  class: "JamRuby::CleanupFacebookSignup"
  description: "Deletes facebook_signups that are old"

UnusedMusicNotationCleaner:
  cron: "0 * * * *"
  class: "JamRuby::UnusedMusicNotationCleaner"
  description: "Remove unused music notations"

UserProgressEmailer:
#  cron: "30 21 * * *"
  class: "JamRuby::UserProgressEmailer"
  description: "Sends periodic user progress emails"

DailySessionEmailer:
#  cron: "0 6 * * *"
  class: "JamRuby::DailySessionEmailer"
  description: "Sends daily scheduled session emails"

DailyJob:
  cron: "0 4 * * *"
  class: "JamRuby::DailyJob"
  description: "Aggregate task to perform general daily things"

HourlyJob:
  cron: "0 * * * *"
  class: "JamRuby::HourlyJob"
  description: "Aggregate task to perform general hourly things"

MinutelyJob:
  cron: "* * * * *"
  class: "JamRuby::MinutelyJob"
  description: "Aggregrate task to perform general minutely things"

ScheduledMusicSessionCleaner:
  cron: "0 3 * * *"
  class: "JamRuby::ScheduledMusicSessionCleaner"
  description: "Purges old, forgotten sessions that have not been started for >4 weeks"

NewMusicianEmailer:
#  cron: "0 1 * * 1"
  class: "JamRuby::NewMusicianEmailer"
  description: "Sends weekly emails of new users with good latency"

NewMusicianMatchEmailer:
  cron: "0 2 * * 6"
  class: "JamRuby::NewMusicianMatchEmailer"
  description: "Sends weekly emails of new users with good latency - (User latency data from neo4j)"

MusicSessionScheduler:
  cron: "0 * * * *"
  class: "JamRuby::MusicSessionScheduler"
  description: "Schedules music sessions that are marked as recurring"

ActiveMusicSessionCleaner:
  cron: "* * * * *"
  class: "JamRuby::ActiveMusicSessionCleaner"
  description: "Removes any active music sessions that are stale."

ScoreHistorySweeper:
  # cron: 0 * * * *
  class: "JamRuby::ScoreHistorySweeper"
  description: "Creates 'ScoreHistory' tables from Scores (disabled for now)"

SessionReminder:
  cron: "*/5 * * * *"
  class: "JamRuby::MusicSessionReminder"
  description: "Creates session reminder emails and notifications as needed."

RecordingsCleaner:
  cron: 0 * * * *
  class: "JamRuby::RecordingsCleaner"
  description: "Cleans up recordings that no one wants after 7 days"

StatsMaker:
#  cron: "* * * * *"
  class: "JamRuby::StatsMaker"
  description: "Generates interesting stats from the database"

TallyAffiliates:
  cron: "0 0,4,8,12,16,20 * * *"
  class: "JamRuby::TallyAffiliates"
  description: "Tallies up affiliate totals"
