mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 06:30:15 +08:00
793f39139a
* This PR implements the scheduling and notification system for bookmark reminders. Every 5 minutes a schedule runs to check any reminders that need to be sent before now, limited to **300** reminders at a time. Any leftover reminders will be sent in the next run. This is to avoid having to deal with fickle sidekiq and reminders in the far-flung future, which would necessitate having a background job anyway to clean up any missing `enqueue_at` reminders. * If a reminder is sent its `reminder_at` time is cleared and the `reminder_last_sent_at` time is filled in. Notifications are only user-level notifications for now. * All JavaScript and frontend code related to displaying the bookmark reminder notification is contained here. The reminder functionality is now re-enabled in the bookmark modal as well. * This PR also implements the "Remind me next time I am at my desktop" bookmark reminder functionality. When the user is on a mobile device they are able to select this option. When they choose this option we set a key in Redis saying they have a pending at desktop reminder. The next time they change devices we check if the new device is desktop, and if it is we send reminders using a DistributedMutex. There is also a job to ensure consistency of these reminders in Redis (in case Redis drops the ball) and the at desktop reminders expire after 20 days. * Also in this PR is a fix to delete all Bookmarks for a user via `UserDestroyer` |
||
---|---|---|
.. | ||
about_stats.rb | ||
activation_reminder_emails.rb | ||
auto_expire_user_api_keys.rb | ||
auto_queue_handler.rb | ||
badge_grant.rb | ||
bookmark_reminder_notifications.rb | ||
category_stats.rb | ||
check_out_of_date_themes.rb | ||
clean_up_associated_accounts.rb | ||
clean_up_crawler_stats.rb | ||
clean_up_deprecated_url_site_settings.rb | ||
clean_up_email_logs.rb | ||
clean_up_exports.rb | ||
clean_up_inactive_users.rb | ||
clean_up_post_reply_keys.rb | ||
clean_up_search_logs.rb | ||
clean_up_unmatched_emails.rb | ||
clean_up_unmatched_ips.rb | ||
clean_up_unsubscribe_keys.rb | ||
clean_up_unused_api_keys.rb | ||
clean_up_unused_staged_users.rb | ||
clean_up_uploads.rb | ||
create_missing_avatars.rb | ||
dashboard_stats.rb | ||
destroy_old_deletion_stubs.rb | ||
destroy_old_hidden_posts.rb | ||
directory_refresh_daily.rb | ||
directory_refresh_older.rb | ||
disable_bootstrap_mode.rb | ||
drop_backup_schema.rb | ||
enqueue_digest_emails.rb | ||
enqueue_onceoffs.rb | ||
enqueue_suspect_users.rb | ||
ensure_db_consistency.rb | ||
ensure_s3_uploads_existence.rb | ||
fix_user_usernames_and_groups_names_clash.rb | ||
grant_anniversary_badges.rb | ||
grant_new_user_of_the_month_badges.rb | ||
heartbeat.rb | ||
ignored_users_summary.rb | ||
invalidate_inactive_admins.rb | ||
migrate_upload_scheme.rb | ||
pending_queued_posts_reminder.rb | ||
pending_reviewables_reminder.rb | ||
pending_users_reminder.rb | ||
periodical_updates.rb | ||
poll_mailbox.rb | ||
process_badge_backlog.rb | ||
purge_deleted_uploads.rb | ||
purge_expired_ignored_users.rb | ||
purge_old_web_hook_events.rb | ||
purge_unactivated.rb | ||
reindex_search.rb | ||
reviewable_priorities.rb | ||
schedule_backup.rb | ||
tl3_promotions.rb | ||
top_refresh_older.rb | ||
top_refresh_today.rb | ||
unsilence_users.rb | ||
update_heat_settings.rb | ||
version_check.rb | ||
weekly.rb |