discourse/app/jobs/regular
David Taylor c0293339b8
PERF: Do not enqueue digest emails when attempted recently (#10849)
Previously, Jobs::EnqueueDigestEmails would enqueue a digest job for every user, even if there are no topics to send. The digest job would exit, no email would send, and last_emailed_at would not change. 30 minutes later, Jobs::EnqueueDigestEmails would run again and re-enqueue jobs for the same users.

120fa8ad introduced a temporary mitigation for this issue, by randomly selecting a subset of those users each time.

This commit adds a new `digest_attempted_at` column to the `user_stats` table. This column is updated every time a digest job completes for a user. Using this, we can avoid scheduling digest jobs for the same user every 30 minutes. This also removes the random user selection in 120fa8ad, and instead prioritizes users who had digests attempted the longest time ago.
2020-10-07 15:30:38 +01:00
..
admin_confirmation_email.rb UX: show user email address on "grant admin access" email and UI 2019-11-04 14:47:00 +05:30
anonymize_user.rb FEATURE: multiple use invite links (#9813) 2020-06-09 20:49:32 +05:30
automatic_group_membership.rb UX: drop the automatic_membership_retroactive column from groups model. (#9430) 2020-04-22 22:07:39 +05:30
backup_chunks_merger.rb PERF: Remove database query when publishing to staff users. 2020-04-27 11:50:21 +08:00
bulk_grant_trust_level.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
bulk_invite.rb DEV: Apply Rubocop redundant return style 2019-11-14 15:10:51 -05:00
bulk_user_title_update.rb FIX: Unassign user titles when a badge is deleted (#9573) 2020-05-02 18:02:28 -07:00
bump_topic.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
confirm_sns_subscription.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
crawl_topic_link.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
create_avatar_thumbnails.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
create_backup.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
create_user_reviewable.rb Link website when reviewing users 2020-02-19 10:18:05 -05:00
critical_user_email.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
delete_inaccessible_notifications.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
delete_replies.rb FIX: jobs/delete_replies: Add Time+Duration, not Time+Time #9314 2020-04-03 09:23:40 +05:30
delete_topic.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
download_avatar_from_url.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
download_backup_email.rb FIX: Replace deprecated URI.encode, URI.escape, URI.unescape and URI.unencode (#8528) 2019-12-12 12:49:21 +10:00
download_profile_background_from_url.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
emit_web_hook_event.rb DEV: stop freezing frozen strings 2020-04-30 16:48:53 +10:00
enable_bootstrap_mode.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
export_csv_file.rb DEV: Switch to new ExportUserArchive job 2020-08-28 11:46:53 -07:00
export_user_archive.rb User export: profile as json, export auth token logs (#10819) 2020-10-06 15:51:53 -07:00
feature_topic_users.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
generate_topic_thumbnails.rb FIX: Handle a deleted topic in thumbnail generation 2020-05-11 13:32:37 -03:00
group_smtp_email.rb FEATURE: Implement support for IMAP and SMTP email protocols. (#8301) 2020-07-10 12:05:55 +03:00
invite_email.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
invite_password_instructions_email.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
make_embedded_topic_visible.rb FIX: Concurrency issues with making topic embedded posts visible 2020-04-20 15:11:59 -04:00
mass_award_badge.rb FEATURE: Support uploading a csv with either user emails or usernames (#8971) 2020-02-18 10:53:12 -03:00
notify_category_change.rb FIX: correct notification when tag or category is added (#8801) 2020-01-29 11:03:47 +11:00
notify_mailing_list_subscribers.rb FIX: don't send mailing list for post with empty content (#10577) 2020-09-03 08:58:25 +10:00
notify_moved_posts.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
notify_post_revision.rb FIX: Use destroy_all instead of delete_all for shared drafts 2020-03-05 11:13:43 -08:00
notify_reviewable.rb FIX: sync reviewable count when opening the hamburger menu (#10368) 2020-08-07 18:13:02 +02:00
notify_tag_change.rb FEATURE: don't notify about changed tags for a private message (#10408) 2020-08-13 17:22:34 +10:00
post_alert.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
process_bulk_invite_emails.rb FIX: Zeitwerk-related fixes for jobs. (#8219) 2019-10-21 20:25:35 +03:00
process_email.rb FEATURE: Implement support for IMAP and SMTP email protocols. (#8301) 2020-07-10 12:05:55 +03:00
process_post.rb FIX: Use raw content when checking for watched words to flag (#10104) 2020-06-22 19:48:06 +01:00
process_sns_notification.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
publish_topic_to_category.rb SECURITY: Ensure users can see the topic before setting a topic timer. (#10841) 2020-10-06 16:49:06 -03:00
pull_hotlinked_images.rb REFACTOR: Refactor pull_hotlinked_images job 2020-08-05 12:14:59 +01:00
push_notification.rb FIX: Do not make notification API call if push_url is blank 2019-10-16 10:59:06 -04:00
rebake_custom_emoji_posts.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
rebake_posts_for_upload.rb FIX: Mark secure media upload insecure automatically if used for theme component (#8413) 2019-11-28 07:32:17 +10:00
retrieve_topic.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
run_heartbeat.rb DEV: Replace Time.new with Time.now (#9142) 2020-03-09 17:37:49 +01:00
send_push_notification.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
send_system_message.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
suspicious_login.rb FIX: Zeitwerk-related fixes for jobs. (#8219) 2019-10-21 20:25:35 +03:00
toggle_topic_closed.rb FIX: Clean up toggle closed topic timer when user is not authorized. 2020-08-26 12:59:05 +08:00
topic_action_converter.rb FIX: Limit personal message participants when converting from topic (#9343) 2020-04-03 16:42:01 +01:00
topic_reminder.rb FEATURE: Remove user topic timers and migrate to bookmarks with reminders (#10474) 2020-09-14 11:11:55 +10:00
truncate_user_flag_stats.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
unpin_topic.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
update_gravatar.rb FIX: Gravatar download attempt if user is missing their email 2020-09-02 20:19:46 -06:00
update_group_mentions.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
update_s3_inventory.rb FEATURE: Add hidden setting to disable configuration of inventory bucket 2020-01-14 17:23:12 +01:00
update_top_redirection.rb DEV: Upgrading Discourse to Zeitwerk (#8098) 2019-10-02 14:01:53 +10:00
update_topic_upload_security.rb FEATURE: Update upload security status on post move, topic conversion, category change (#8731) 2020-01-23 12:01:10 +10:00
update_username.rb FIX: Don't raise error in update username job if user has been deleted. 2020-09-02 11:17:17 +08:00
user_email.rb PERF: Do not enqueue digest emails when attempted recently (#10849) 2020-10-07 15:30:38 +01:00