WebDevStudios / wp-search-with-algolia

Improve search on your site. Autocomplete is included, along with full control over look, feel and relevance.
https://wordpress.org/plugins/wp-search-with-algolia/
141 stars 54 forks source link

Updating taxonomy with many posts results in timeout #430

Open SuzukiEdo opened 1 week ago

SuzukiEdo commented 1 week ago

Description:

When a taxonomy with 100 more posts is updated, it can timeout the PHP's max execution time.

To Reproduce: Steps to reproduce the behavior:

  1. Create a text category
  2. Add posts to it using something like wp dummy content. 100+ preferably.
  3. Update something in the category. Better if it's a term meta value.
  4. See error

Expected behavior When a term is updated, all posts with that term are as well. For us is around 130, but on bigger sites that handle dozens of thousands of posts in different categories, this can/will time out. The plugin can handle this in a more gracefully way.

Desktop (please complete the following information):

Additional context Our production servers are set to timeout at 30s. Increasing it might fix the problem in the short term, but is not a real solution to the issue.

tw2113 commented 1 week ago

I feel like someone else opened a similar issue recently, but I cannot find where.

The change in question came with version 2.6.0

Added: Support for updating posts when an associated term has been updated.

https://github.com/WebDevStudios/wp-search-with-algolia/blame/main/includes/watchers/class-algolia-term-changes-watcher.php#L73-L105

Closest idea I can think of to help, without reverting the entire feature, would be a filter that can be used to return early, or perhaps have the arguments for the code spot filterable so that it's not fetching all the posts.