diff options
author | Jenkins <jenkins@jenkins.ninjawedding.org> | 2018-01-15 06:17:15 +0000 |
---|---|---|
committer | Jenkins <jenkins@jenkins.ninjawedding.org> | 2018-01-15 06:17:15 +0000 |
commit | 0c7dc6c78123728a9a0a32e16c2ad524e76926c8 (patch) | |
tree | d599071d84f545e16a8ebaddf6e215cadc89247d /app/workers/scheduler | |
parent | 8ee6ed358ff5706e3d0c402a9b23846b51f6d451 (diff) | |
parent | 74c1c9ec01addc7474d74712f76fb6d6d5eecdf7 (diff) |
Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
Diffstat (limited to 'app/workers/scheduler')
-rw-r--r-- | app/workers/scheduler/email_scheduler.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/app/workers/scheduler/email_scheduler.rb b/app/workers/scheduler/email_scheduler.rb new file mode 100644 index 000000000..24d0c0ebe --- /dev/null +++ b/app/workers/scheduler/email_scheduler.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true +require 'sidekiq-scheduler' + +class Scheduler::EmailScheduler + include Sidekiq::Worker + + def perform + eligible_users.find_each do |user| + next unless user.allows_digest_emails? + DigestMailerWorker.perform_async(user.id) + end + end + + private + + def eligible_users + User.confirmed + .joins(:account) + .where(accounts: { silenced: false, suspended: false }) + .where(disabled: false) + .where('current_sign_in_at < ?', 20.days.ago) + .where('last_emailed_at IS NULL OR last_emailed_at < ?', 20.days.ago) + end +end |