* First greedy algorithm approach to awarding community wellness badge
* Update app/services/badges/award_community_wellness.rb
I'm sorry I ignored you rubocop. It's still on draft for a reason 😅
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update app/services/badges/award_community_wellness.rb
Okay, whatever you say rubocop. This line will go away before merging anyways
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Use app/queries/comments/community_wellness_query.rb to replace greedy algorithm
* Query indenting + rename positive_reactions to negative_reactions in EXCEPT
* First step towards query spec
* Fix spec and make it more robust
* Slight cleanup/tweaks
* Badge reward & message
* copy edits + spec improvements + 3 days ago min for query
* Cron update to run daily + small tweak for FeatureFlag use
* inline comment tweaks
* Slight reorder of guard checks in service (FeatureFlag related)
* PR review feedback
* Fix specs from static method refactor
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
148 lines
5.6 KiB
YAML
148 lines
5.6 KiB
YAML
feeds_import:
|
|
description: "Imports feed items as articles (runs hourly on the 20th minute after the hour)"
|
|
cron: "20 * * * *"
|
|
class: "Feeds::ImportArticlesWorker"
|
|
log_worker_queue_stats:
|
|
description: "Records Sidekiq stats in Datadog (runs every 10 minutes)"
|
|
cron: "*/10 * * * *"
|
|
class: "Metrics::RecordBackgroundQueueStatsWorker"
|
|
record_daily_usage:
|
|
description: "Records daily usage stats (runs daily at 11:00 UTC)"
|
|
cron: "0 11 * * *"
|
|
class: "Metrics::RecordDailyUsageWorker"
|
|
record_daily_notifications:
|
|
description: "Records daily notifications stats (runs daily at 11:00 UTC)"
|
|
cron: "0 11 * * *"
|
|
class: "Metrics::RecordDailyNotificationsWorker"
|
|
record_data_counts:
|
|
description: "Records the size of the most important tables in the database (runs hourly on the 10th minute after the hour)"
|
|
cron: "10 * * * *"
|
|
class: "Metrics::RecordDataCountsWorker"
|
|
check_data_update_script_statuses:
|
|
description: "Records the statuses of data update scripts (runs hourly on the 30th minute after the hour)"
|
|
cron: "30 * * * *"
|
|
class: "Metrics::CheckDataUpdateScriptStatuses"
|
|
award_yearly_club_badges:
|
|
description: "Awards 'yearly club' badges to users (runs daily at 00:00 UTC)"
|
|
cron: "0 0 * * *"
|
|
class: "BadgeAchievements::BadgeAwardWorker"
|
|
args:
|
|
- ""
|
|
- award_yearly_club
|
|
- ""
|
|
award_beloved_comment_badges:
|
|
description: "Awards 'beloved comment' badges to users (runs every 12 hours on the 5th minute after the hour)"
|
|
cron: "5 */12 * * *"
|
|
class: "BadgeAchievements::BadgeAwardWorker"
|
|
args:
|
|
- ""
|
|
- award_beloved_comment
|
|
- ""
|
|
award_four_week_streak_badge:
|
|
description: "Awards 'four week publishing streak' badges to users (runs every 12 hours on the 10th minute after the hour)"
|
|
cron: "10 */12 * * *"
|
|
class: "BadgeAchievements::BadgeAwardWorker"
|
|
args:
|
|
- ""
|
|
- award_four_week_streak
|
|
- ""
|
|
award_eight_week_streak_badge:
|
|
description: "Awards 'eight week publishing streak' badges to users (runs every 12 hours on the 15th minute after the hour)"
|
|
cron: "15 */12 * * *"
|
|
class: "BadgeAchievements::BadgeAwardWorker"
|
|
args:
|
|
- ""
|
|
- award_eight_week_streak
|
|
- ""
|
|
award_sixteen_week_streak_badge:
|
|
description: "Awards 'sixteen week publishing streak' badges to users (runs every 12 hours on the 20th minute after the hour)"
|
|
cron: "20 */12 * * *"
|
|
class: "BadgeAchievements::BadgeAwardWorker"
|
|
args:
|
|
- ""
|
|
- award_sixteen_week_streak
|
|
- ""
|
|
award_weekly_tag_badges:
|
|
description: "Awards 'weekly beloved article for a tag' badges to users (runs at 11:00 UTC on Thursday)"
|
|
cron: "0 11 * * 4"
|
|
class: "BadgeAchievements::BadgeAwardWorker"
|
|
args:
|
|
- ""
|
|
- award_tag
|
|
- ""
|
|
award_contributor_badges_from_github:
|
|
description: "Awards 'GitHub contributor' badges to users (runs hourly on the 20th minute after the hour)"
|
|
cron: "20 * * * *"
|
|
class: "BadgeAchievements::BadgeAwardWorker"
|
|
args:
|
|
- ""
|
|
- award_contributor_from_github
|
|
- ""
|
|
award_community_wellness_badges:
|
|
description: "Awards 'Community Wellness' badges to users (runs daily at 00:45 UTC)"
|
|
cron: "45 0 * * *"
|
|
class: "BadgeAchievements::BadgeAwardWorker"
|
|
args:
|
|
- ""
|
|
- award_community_wellness
|
|
- ""
|
|
remove_old_html_variant_data:
|
|
description: "Deletes old HTML variants (runs hourly on the 10th minute after the hour)"
|
|
cron: "10 * * * *"
|
|
class: "HtmlVariants::RemoveOldDataWorker"
|
|
resave_supported_tags:
|
|
description: "Resaves supported tags to recalculate scores (runs daily at 00:25 UTC)"
|
|
cron: "25 0 * * *"
|
|
class: "Tags::ResaveSupportedTagsWorker"
|
|
expire_old_listings:
|
|
description: "Expires old listings (runs daily at 00:30 UTC)"
|
|
cron: "30 0 * * *"
|
|
class: "Listings::ExpireOldListingsWorker"
|
|
send_welcome_notifications:
|
|
description: "Sends welcome notifications to new users (runs daily at 16:30 UTC)"
|
|
cron: "0 16 * * *"
|
|
class: "Broadcasts::SendWelcomeNotificationsWorker"
|
|
hourly_feed_cache_bust:
|
|
description: "Busts the edge cache of the feed (runs hourly on the hour)"
|
|
cron: "0 * * * *"
|
|
class: "BustCachePathWorker"
|
|
args:
|
|
- "/feed.xml"
|
|
daily_home_cache_bust:
|
|
description: "Busts the edge cache of the homepage (runs daily at 00:00 UTC)"
|
|
cron: "0 0 * * *"
|
|
class: "BustCachePathWorker"
|
|
args:
|
|
- "/"
|
|
send_email_digest:
|
|
description: "Sends the email digest to users (runs at 11:30 UTC on Wednesday, Thursday, Friday, and Saturday)"
|
|
cron: "30 11 * * 3,4,5,6"
|
|
class: "Emails::EnqueueDigestWorker"
|
|
remove_old_notifications:
|
|
description: "Deletes old notifications from the database (runs daily at 05:00 UTC)"
|
|
cron: "0 5 * * *"
|
|
class: "Notifications::RemoveOldNotificationsWorker"
|
|
remove_old_emails:
|
|
description: "Deletes old emails we don't need to retain from the database (runs daily at 06:00 UTC)"
|
|
cron: "0 6 * * *"
|
|
class: "Emails::RemoveOldEmailsWorker"
|
|
sync_credits_counter_cache:
|
|
description: "Synchronizes counter caches for credits (runs daily at 16:00 UTC)"
|
|
cron: "0 16 * * *"
|
|
class: "Credits::SyncCounterCache"
|
|
get_podcast_episodes:
|
|
description: "Fetches podcast episodes asynchronously (runs hourly on the 5th minute after the hour)"
|
|
cron: "5 * * * *"
|
|
class: "Podcasts::EnqueueGetEpisodesWorker"
|
|
update_latest_github_repos:
|
|
description: "Fetches the latest info about stored GitHub repositories (runs hourly, 45 min after the hour)"
|
|
cron: "45 * * * *"
|
|
class: "GithubRepos::UpdateLatestWorker"
|
|
push_notifications_cleanup:
|
|
description: "Cleans up Push Notifications from Redis (runs every 8 hours on the 20th minute after the hour)"
|
|
cron: "20 */8 * * *"
|
|
class: "PushNotifications::CleanupWorker"
|
|
capture_query_stats:
|
|
description: "Collects Postgres query stats for PGHero (runs every 5 minutes)"
|
|
cron: "*/5 * * * *"
|
|
class: "CaptureQueryStatsWorker"
|