Commit graph

963 commits

Author SHA1 Message Date
Alain Mauri
18b2b2cb4c Add Follows::CreateChatChannelWorker for Sidekiq (#5458)
* Added a new worker to create chat channels after a follow
* Moved the chat channe creation to after_create_commit hook
2020-01-20 08:23:44 -05:00
Ben Halpern
9fa5d3156a
Add article.comment_score metric calc and tracking (#5560) [deploy]
* Add article.comment_score metric calc and tracking

* Change from gauge to count

* Adjust key and tags
2020-01-19 15:21:19 -05:00
Ben Halpern
46a0742d85
Remove flaky edit button spec (#5579) 2020-01-18 20:32:21 -05:00
Mike Coutermarsh
9f983e271c Increase cache TTL for social preview images (#5471) [deploy]
* Increase cache TTL for social preview images

These are expensive to generate + don't change often. We can have a long cache.

Ideally, they would never expire, and get auto evicted by redis when space fills up. But I don't think a `nil` ttl is possible when a default
is set in the Rails config (see production.rb).

So I set it to a real long value. + test to guard against it accidently being changed.

* Try a cache expiration of 6.weeks as suggested by @mstruve in PR
2020-01-17 17:06:06 -05:00
Alex
e1e075479b Create new NewFollowerWorker and start sending jobs to it (#5556) [deploy] 2020-01-17 15:08:50 -05:00
Asha Balasubramaniam
80aa2d51cf Remove migrated job to bust comment cache (#5548) 2020-01-17 14:21:39 -05:00
Alain Mauri
6f0f64ba6a Remove Mentions create all job (#5550) [deploy] 2020-01-17 13:59:27 -05:00
Anna Buianova
245550a10b Improved BadgeRewarder (#5525)
* Improved BadgeRewarder

* Replaced find_by with find_by! in BadgeRewarder to be aware of missing badges

* Fixed and organized BadgeRewarder specs

* Use let instead of let! in BadgeRewarder tests where needed
2020-01-17 09:18:19 -05:00
Ben Halpern
477f5af8eb
Send past week aggregate x day active user data to datadog (#5553) [deploy]
* Initial days active work

* Add active users count to datadog
2020-01-17 08:52:38 -05:00
rhymes
1bc0469b2d Add article's record key to Fastly Surrogate-Key to separate caches (#5543)
* Add article's record key to Fastly Surrogate-Key to separate caches

After #4744 we successfully setup an auto purging system based on Fastly's surrogate key based cache and purging API.
Unfortunately this worked only in the `:show` action as comments are their own tree-based resource.
The `:index` though, is related to a single article, so without the article's record key in the `Surrogate-Key` header the first time we hit the API the result would become the value stored in Fastly's API, for all articles.

* Fix commentable mock for job spec

* Add comment.commentable.purge to the worker as well

* Add more thorough tests for commentable
2020-01-17 08:45:47 -05:00
Jacob Herrington
8db4808d2e Internal Reports: Searching and sorting with Ransack (#5447) [deploy]
* Add gem Ransack 2.3.0

* Add sorting and search to internal/reports

The UI here should probably be revisited sooner or later, I feel like
the vomit reactions might even need to be moved to their own view.

* Add system spec for internal reports search

* Remove filter for report_type
2020-01-16 15:02:09 -05:00
Ben Halpern
a4b86e3ff1
Add initial usage metrics for datatog (#5544) [deploy]
* Add initial usage metrics for datatog

* Make measurable name more clear

* Change name of daily usage worker

* Fix test names
2020-01-16 12:59:17 -05:00
Molly Struve
1a3d59c97f
Send Sidekiq data to Honeycomb (#5517) [deploy] 2020-01-16 12:30:43 -05:00
gverger
c7de0d762b Add let_it_be_readonly to avoid updating variables (#5407)
With let_it_be, we define variables that are created for the whole
context. In case we update them in an example, there might be a
discrepancy between the object and its value in the database, since the
database is cleaned between examples, but not the object itself.

This is what happened here with the `article` object. In one of the
tests, we update its organization, and in another, we reupdate it. The
problem is that the `article` object still thinks it has an
organization, but it has been cleaned in the database. So setting the
same organization id to the object doesn't trigger the SQL query, and
the article in the database still doesn't have an organization attached.

One solution is to use `reload: true` as a parameter of `let_it_be`: it
will reload the object from the database at the beginning of each test. To
make sure we don't have other dormant traps like this one, what I
propose is to either have `reload: true`, or to have the object
readonly to avoid getting to a difference between the object and its
database value.
2020-01-16 10:53:30 -05:00
Asha Balasubramaniam
81ead4935a Migrate Comments::BustCacheJob to Comments::BustCacheWorker and move to Sidekiq (#5502) 2020-01-16 10:20:13 -05:00
Molly Struve
29efdaf20a
Remove Comments::CreateIdCodeJob which is now done inline (#5536) 2020-01-16 09:31:11 -05:00
serena
5e761fc570 remove unused welcome notification job (#5535) 2020-01-15 16:57:33 -05:00
Molly Struve
5962d52a61
record background queue stats in a worker (#5533) [deploy] 2020-01-15 14:44:57 -05:00
Lucas Hiago
97aac4ef9b Change Notifications::MilestoneJob to Notifications::MilestoneWorker and move to sidekiq (#5454) [deploy] 2020-01-15 13:21:56 -05:00
Lucas Hiago
74f9decc56 Change Notifications::RemoveAllJob to Notifications::RemoveAllWorker and move to sidekiq (#5451) 2020-01-15 12:34:12 -05:00
Molly Struve
2e5a36e538
Log DB Table sizes in a Sidekiq Worker (#5518) 2020-01-15 12:33:14 -05:00
rhymes
4f9321e6f4 Fix spec that broke after we merged #4744 (#5529) [deploy] 2020-01-15 12:01:37 -05:00
rhymes
bcd85452e9 Comments API: fix caching issues (#4744) [deploy]
* Use ancestry in the index and add test

* Add tests for show action

* Return complete comments trees for index, kill n+1 and use correct edge cache key

* Return complete comments tree for show, kill n+1 and use correct edge cache key

* Refactor tests and add surrogate keys tests

* Preload users for the whole subtree

* Clarify explanation of the edge cache keys construction

* Refactor partials

* Remove action caching

* Replace .map.flatten with .flat_map

* Fix surrogate key prefix according to Fastly docs

* Add comment.purge to Comments::BustCacheJob to use Fastly-Rails

* Fix surrogate key spec
2020-01-15 10:45:56 -05:00
rhymes
9b2886979a ActiveRecord count optimizations (#5478) [deploy]
* Do not load messages in memory, just to count them
* Add Model.estimated_count
* Use Model.estimated_count in task record_db_table_counts
* Use size and estimated_count
* Use table_name so that .estimated_count works with all models
* Add comment to explain the .load.size + .each pattern
2020-01-14 12:03:38 -05:00
Michael Kohl
dba7e6ca60 Move Twitch webhook registration from ActiveJob to Sidekiq (#5414) 2020-01-14 11:55:35 -05:00
Michael Kohl
92b5f113be Return 429 Too Many Requests instead of raising (#5504) 2020-01-14 11:53:33 -05:00
rhymes
241c39344e Destroy messages if chat channels are destroyed (#5498) 2020-01-14 09:46:40 -06:00
Anna Buianova
05884acd19 Fixed rubocop issues (#5506) 2020-01-14 09:45:26 -06:00
serena
6e9539415e Move welcome notification job to worker for Sidekiq (#5465) [deploy] 2020-01-13 13:28:23 -06:00
Alain Mauri
faa696444b Add Mentions::CreateAllWorker for Sidekiq (#5463) 2020-01-13 13:23:30 -06:00
Asha Balasubramaniam
61acfcd4c9 Remove Comments::SendEmailNotificationJob to send email notification on comment creation (#5446)
Follow up to https://github.com/thepracticaldev/dev.to/pull/5427
2020-01-13 13:19:48 -06:00
Lucas Hiago
1ed6aca54a Change Webhook::DestroyJob to Wehook::DestroyWorker and move to sidekiq (#5424) [deploy] 2020-01-13 12:38:10 -06:00
Anna Buianova
851508f628 Fix a bug when user tries to delete an account while not having an email (#5486)
* Ask user to add email when deleting [WIP]

* Ask to provide an email before requesting account deletion

* Additional checks to make sure that user won't be deleted w/o an email

* Revert changes on confirm destroy view
2020-01-13 08:34:37 -05:00
Asha Balasubramaniam
e5960810cc Migrate Comments::SendEmailNotificationJob to Sidekiq (#5427)
* Add sidekiq version of the corresponding delayed job
* Switch the invocation of the delayed job from `after_create` to
`after_create_commit` to avoid the race condition where the worker can
be executed before the comment is persisted. Added covering spec
for this change.
2020-01-10 13:59:12 -06:00
Pablo Ifrán
bac4b7fac4 Move Users::ResaveArticlesJob to Sidekiq (#5398)
Change Resave Articles job to worker, and add missing specs on the user
model when changing the trigger attributes
2020-01-10 13:56:39 -06:00
Ben Halpern
f78b89e763
Add suggested tags to SiteConfig (#5426) [deploy]
* Initial base work

* Add suggested tags config

* Downcase suggested tag input
2020-01-10 12:33:37 -05:00
Maykon Menezes
cf4dc80250 Move Podcast Episode Bust Cache Job to Sidekiq (#5416) [deploy] 2020-01-10 10:08:59 -06:00
serena
00fd2f4518 Remove Unused NewBadgeAchievementJob (#5437) 2020-01-10 10:07:36 -06:00
Mukesh Chaudhary
d479a77aab Remove New Reaction Job and Spec (#5422) [deploy] 2020-01-10 08:44:23 -06:00
Jenna Pederson
5c9302f5f1 Migrate subscribe to mailchimp newsletter job to sidekiq worker (#5423)
* Start migrating job to sidekiq worker
* Only check for badge jobs queued to sidekiq
2020-01-10 08:43:13 -06:00
Alain Mauri
c013079359 Move Classified Listing Cache Buster to Sidekiq (#5408) [deploy]
* Created the worker to bust cache for classified listings
* Created the related tests
* Removed the old job
2020-01-09 17:23:23 -05:00
Lucas Hiago
a86371e772 Remove TouchJob and do it Inline (#5410) 2020-01-09 17:22:09 -05:00
rhymes
7dd2ae9fe0 Remove notifiable access from articles and comments notifications (#5415) [deploy]
* Add created_at to comment notification data

* Remove notifiable usage from notifications partials

* Fix typo
2020-01-09 10:19:45 -05:00
Mukesh Chaudhary
48edaab5bc Migrate new reaction job 5305 (#5401)
* Add New Reaction Worker

* Add Specs for the New Reaction Worker

* Update Worker Calls in Notification Model

* Update Notification Model Specs

* Fix Code Climate Issues

* Fix notification specs to remove instance variable and complex logic

* Fix Worker Spec

* Fix Review Comments

* Undo Job Specs

Co-authored-by: Mukesh Chaudhary <45253983+mukeshchdy@users.noreply.github.com>
2020-01-09 09:51:56 -05:00
Molly Struve
86e138662a
remove persist audit job and do it inline (#5355) [deploy] 2020-01-09 08:49:22 -05:00
Asha Balasubramaniam
91663231cc Remove delayed job that calculates comment score (#5412) [deploy]
Get rid of the delayed job and corresponding spec. Follow up to https://github.com/thepracticaldev/dev.to/pull/5382
2020-01-09 08:25:03 -05:00
rhymes
d2e96007c7 Fix (some) n+1/eager loading issues (#5294) [deploy]
* Remove mock from specs to test the actual Suggester

* Fix articles API top articles n+1

* Fix n+1 in articles API with state parameter

* Remove eager loading for organization dashboard

* Eager load notifiables in notifications only when needed

* Algolia does not like this
2020-01-08 18:48:24 -05:00
Alain Mauri
5055121361 Remove Chat Channels Index Job (#5409) [deploy] 2020-01-08 16:33:40 -05:00
Pablo Ifrán
f5d3593d4f Change the way that id_code was created (#5348) [deploy]
The column id_code was created with a job in an after create callback,
that was replaced by an inline creation of the attribute
2020-01-08 16:21:39 -05:00
Anna Buianova
e09e46ec99 Creating podcasts by users (#3730) [deploy]
* Create podcast as a user [WIP]

* Sample css for podcast form

* Nicer podcasts suggesting form

* Validate podcast feed_url

* Validate podcast main_color_hex

* Fix podcasts specs

* Fix form appearance

* Placeholder for podcast main_color_hex

* Provide a link to suggest a podcast

* Add a checkbox and a role for when a podcast is added by an owner

* Prettier checkbox in the podcasts form

* Added creator to podcasts

* Set the podcast creator

* Fix the /pod spec

* Added creator information to the internal podcast page

* Added cta class to the podcasts submit button

* Global notice when a podcast was suggested

Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
2020-01-08 16:14:25 -05:00