about summary refs log tree commit diff
path: root/app/workers/scheduler
AgeCommit message (Collapse)Author
2019-08-30use a scheduled task to batch domain policy changes + revert `29643fd6` to ↵multiple creatures
avoid accidentally dosing servers when multiple users block a domain
2019-08-18split db pruning off into its own scheduled jobmultiple creatures
2019-08-18janitor - allow retries, `@account_ids -> @exclude_ids`, remove unneeded ↵multiple creatures
`uniq` calls
2019-08-09janitor - add db & media pruning jobmultiple creatures
2019-08-08janitor - option to export `activityrelay` configmultiple creatures
2019-08-08janitor - make sure values excludes are dedupedmultiple creatures
2019-08-07add option to automatically space out boosts over configurable random intervalsmultiple creatures
2019-08-05janitor can now write suspended domains to whatever JANITOR_BLOCKLIST_OUTPUT ↵multiple creatures
is set to so they can be imported elsewhere (e.g., `nginx`)
2019-08-03move `Scheduler::JanitorScheduler::admin_account` to ↵multiple creatures
`ModerationHelper::janitor_account`
2019-08-03`domain_exists` -> `domain_exists?`multiple creatures
2019-08-03rename `BangtagHelper` to `ModerationHelper`multiple creatures
2019-08-03skip importing dead domainsmultiple creatures
2019-08-03`monsterpit-janitor` is now built in as a sidekiq job (with better code)multiple creatures
2019-07-26process self-destructing roars asynchronouslymultiple creatures
2019-07-23add self-destructing roars & `live`/`lifespan` bangtagsmultiple creatures
2019-05-21Drop remaining OStatus and PuSH code, as well as related database items.multiple creatures
2019-05-21Drop OStatus support. Fix some of the Rspec tests.multiple creatures
2019-02-02Create Redisable#redis (#9633)ysksn
* Create Redisable * Use #redis instead of Redis.current
2019-01-06Fix PublishScheduledStatusWorker being queued with no arguments (#9724)Eugen Rochko
2019-01-05Add scheduled statuses (#9706)Eugen Rochko
Fix #340
2019-01-02Improve e-mail digest (#9689)Eugen Rochko
- Reduce time-to-digest from 20 to 7 days - Fetch mentions starting from +1 day since last login - Fix case when last login is more recent than last e-mail - Do not render all mentions, only 40, but show number in subject - Do not send digest to moved accounts - Do send digest to silenced accounts
2018-10-09Track historical space stats in PgHero to determine PostgreSQL growth (#8906)Eugen Rochko
2018-08-25Disable retries on all scheduled tasks (#8413)Eugen Rochko
2018-08-21Get rid of all batch order warnings (#8334)Eugen Rochko
2018-08-19Keep scheduler jobs unique until they're done (#8287)Eugen Rochko
2018-05-02Slightly reduce RAM usage (#7301)Eugen Rochko
* No need to re-require sidekiq plugins, they are required via Gemfile * Add derailed_benchmarks tool, no need to require TTY gems in Gemfile * Replace ruby-oembed with FetchOEmbedService Reduce startup by 45382 allocated objects * Remove preloaded JSON-LD in favour of caching HTTP responses Reduce boot RAM by about 6 MiB * Fix tests * Fix test suite by stubbing out JSON-LD contexts
2018-04-04Adjust privacy policy (#6666)Eugen Rochko
* Adjust privacy policy to be more specific to Mastodon Fix #6613 * Change data retention of IP addresses from 5 years to 1 year * Add even more information * Remove all (now invalid) translations of the privacy policy * Add information about archive takeout, remove pointless consent section * Emphasis on DM privacy * Improve wording * Add line about data use for moderation purposes
2018-02-21Account archive download (#6460)Eugen Rochko
* Fix #201: Account archive download * Export actor and private key in the archive * Optimize BackupService - Add conversation to cached associations of status, because somehow it was forgotten and is source of N+1 queries - Explicitly call GC between batches of records being fetched (Model class allocations are the worst offender) - Stream media files into the tar in 1MB chunks (Do not allocate media file (up to 8MB) as string into memory) - Use #bytesize instead of #size to calculate file size for JSON (Fix FileOverflow error) - Segment media into subfolders by status ID because apparently GIF-to-MP4 media are all named "media.mp4" for some reason * Keep uniquely generated filename in Paperclip::GifTranscoder * Ensure dumped files do not overwrite each other by maintaing directory partitions * Give tar archives a good name * Add scheduler to remove week-old backups * Fix code style issue
2018-01-15Move e-mail digest task to sidekiq, reduce workload, improve hint (#6252)Eugen Rochko
2017-12-05Lists redis clean-up (#5886)Eugen Rochko
* When list is deleted, remove feed from redis * Clean up list feeds of inactive users
2017-10-17Clean up reblog tracking keys, related improvements (#5428)aschmitz
* Clean up reblog-tracking sets from FeedManager Builds on #5419, with a few minor optimizations and cleanup of sets after they are no longer needed. * Update tests, fix multiply-reblogged case Previously, we would have lost the fact that a given status was reblogged if the displayed reblog of it was removed, now we don't. Also added tests to make sure FeedManager#trim cleans up our reblog tracking keys, fixed up FeedCleanupScheduler to use the right loop, and fixed the test for it.
2017-10-16Keep references to all reblogs of a status on home feed (#5419)Eugen Rochko
* Keep references to all reblogs of a status on home feed When inserting reblog: Add to set of reblogs of this status on the feed, if original status was present in the feed, add it to that set as well. When removing a reblog: Remove it from that set. Take random remaining item from the set. If one exists, re-insert it into feed, otherwise do not re-insert anything. Fix #4210 * When original is removed, toss out reblog references
2017-09-14Add scheduled worker to purge old user IPs (#4951)sdukhovni
* Add scheduled worker to purge old user IPs * Use ruby 1.9 hash syntax
2017-08-21Periodically remove expired PuSH subscribers (#4654)Eugen Rochko
2017-08-21ActivityPub migration procedure (#4617)Eugen Rochko
* ActivityPub migration procedure Once one account is detected as going from OStatus to ActivityPub, invalidate WebFinger cache for other accounts from the same domain * Unsubscribe from PuSH updates once we receive an ActivityPub payload * Re-subscribe to PuSH unless already unsubscribed, regardless of protocol
2017-08-12Only PuSH-resubscribe to OStatus accounts (#4583)Eugen Rochko
2017-07-24Move clean up of unconfirmed users to sidekiq-scheduler (#4336)Eugen Rochko
* Move clean up of unconfirmed users to sidekiq-scheduler * mastodon:daily is now deprecated
2017-06-25Bind web UI access tokens to sessions (#3940)Eugen Rochko
* Add overview of active sessions * Better display of browser/platform name * Improve how browser information is stored and displayed for sessions overview * Fix test * Fix #2347 - Bind web UI access token to session When you logout, session also destroys the access token, so it's no longer valid. If access token is destroyed some other way, the session is also destroyed, requiring a re-login. Fix #1681 - Add scheduler to remove revoked access tokens and grants * Fix test
2017-06-04change sidekiq queueing to bulk push (#3536)takayamaki
2017-05-22Specs for cleanup workers (#3235)Matt Jankowski
* Add spec files for feed and media cleanup workers * Add coverage for feed and media cleanup schedulers * Clean up feed and media cleanup workers
2017-05-20Replace mastodon:media:clear and mastodon:feeds:clear rake tasks with (#3180)Eugen Rochko
sidekiq-scheduler jobs Resolves #2495
2017-05-06Fix Scheduler::SubscriptionsScheduler (#2834)Eugen Rochko
* Fix Scheduler::SubscriptionsScheduler, add worker test for it * Change production log level of Sidekiq to "warn" instead of "info"
2017-05-05More robust PuSH subscription refreshes (#2799)Eugen Rochko
* Fix #2473 - Use sidekiq scheduler to refresh PuSH subscriptions instead of cron Fix an issue where / in domain would raise exception in TagManager#normalize_domain PuSH subscriptions refresh done in a round-robin way to avoid hammering a single server's hub in sequence. Correct handling of failures/retries through Sidekiq (see also #2613). Optimize Account#with_followers scope. Also, since subscriptions are now delegated to Sidekiq jobs, an uncaught exception will not stop the entire refreshing operation halfway through Fix #2702 - Correct user agent header on outgoing http requests * Add test for SubscribeService * Extract #expiring_accounts into method * Make mastodon:push:refresh no-op * Queues are now defined in sidekiq.yml * Queues are now in sidekiq.yml