docbrown/config/schedule.yml
Anna Buianova ff76cdd3c5
Scheduling articles (#17939)
* Article query spec for scheduled articles

* Added scheduled article badge on the user dashboard

* Added published_at field to editor options

* Accept and validate published_at from editor

* Refactor published_at validation

* Allow 1-minute difference in published_at

* Notice on an unpublished article page

* Added specs for 'Click to edit' link on scheduled article preview page

* ContextNotification model

* Articles::Publish worker

* Added specs for articles publish worker

* Schedule publish articles worker

* Added tests to check for scheduled posts in feeds

* Don't allow managing scheduled articles

* Don't send notifications for scheduled articles

* Set published_at in Articles::Updater when publishing

* Published_at value in post options

* Pass timezone and set published_at accordingly

* Limit setting published_at to the future

* Readonly published_at for articles that were already published

* Chagning published_at format in editor v1 (start)

* Changed published_at format in frontmatter, specs

* Added specs for updating published_at from frontmatter

* Fixed accepting past published_at for articles published_from_feed

* Enabled published_at validation: don't allow updating published_at for already published articles

* Validate published_at on create

* Added a spec for updating published_at for exported articles

* Fixed specs related to creating articles with past published_at

* Fixed specs related to past published_at for articles

* Added a hack so that admins would be able to update published_at

* Switch button text schedule/publish when changin publishedAt

* Fixed saving published_at with timezone

* Added a feature flag for scheduling articles

* Default text in markdown editor depends on feature flag

* Enable article editor cache again

* Fixed the default value in the markdown editor

* Fix sitemaps spec

* Removed tooltip

* Fixed articles update specs

* Added missing locales

* Fixed article create specs

* Fixed spec

* Removed commented code

* Returned enabling extensions in the schema

* Returned accidentally deleted constraint

* Make articles query spec more stable

Co-authored-by: Jeremy Friesen <jeremy.n.friesen@gmail.com>

* Removed commented code

* Removed unused code

* A clearer policy

Co-authored-by: Jeremy Friesen <jeremy.n.friesen@gmail.com>

* Use StringInquirer for article current state

* Added a note and todo to articles factory past trait

* Remove duplicated PropType

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Refactor query in the Articles::PublishWorker

Co-authored-by: Mac Siri <krairit.siri@gmail.com>

* Refactor articleForm.jsx

Co-authored-by: Mac Siri <krairit.siri@gmail.com>

* Removed specs that are no longer relevant

* Removed useless onKeyUp on a hidden input

* Refactored articleForm

* Hide scheduling from post options when published_at is readonly

* Run sends notifications worker every 5 minutes instead of every minute

Co-authored-by: Jeremy Friesen <jeremy.n.friesen@gmail.com>
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
Co-authored-by: Mac Siri <krairit.siri@gmail.com>
2022-07-07 17:32:49 +03:00

152 lines
5.8 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"
notify_about_published_articles:
description: "Sends notifications about the new published articles (runs every minute)"
cron: "*/5 * * * *"
class: "Articles::PublishWorker"