Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use thread_queue delivery in Sidekiq #626

Merged
merged 1 commit into from
Aug 13, 2020
Merged

Conversation

imjoehaines
Copy link
Contributor

@imjoehaines imjoehaines commented Aug 13, 2020

Goal

This PR switches the default delivery method used in Sidekiq to thread_queue, from synchronous

After quite a bit of testing this seems to be safe; it looks like Sidekiq was using synchronous only because Resque needs to use synchronous delivery (so just in case, rather than because we proved it was necessary)

Changeset

Added

  • A new Maze Runner test ensures the delivery method can be changed when using Sidekiq

Removed

  • SIdekiq no longer overrides the default delivery method

Changed

  • Maze Runner tests for Sidekiq now check which delivery method was used

Tests

I did a bunch of manual testing to make sure this is safe and we have tests on various Sidekiq versions which would fail if we weren't delivering events. I've also made sure we test the default delivery method and, for completeness, that it can be changed

Linked issues

Related to #593

Review

For the submitter, initial self-review:

  • Commented on code changes inline explain the reasoning behind the approach
  • Reviewed the test cases added for completeness and possible points for discussion
  • A changelog entry was added for the goal of this pull request
  • Check the scope of the changeset - is everything in the diff required for the pull request?
  • This pull request is ready for:
    • Initial review of the intended approach, not yet feature complete
    • Structural review of the classes, functions, and properties modified
    • Final review

For the pull request reviewer(s), this changeset has been reviewed for:

  • Consistency across platforms for structures or concepts added or modified
  • Consistency between the changeset and the goal stated above
  • Internal consistency with the rest of the library - is there any overlap between existing interfaces and any which have been added?
  • Usage friction - is the proposed change in usage cumbersome or complicated?
  • Performance and complexity - are there any cases of unexpected O(n^3) when iterating, recursing, flat mapping, etc?
  • Concurrency concerns - if components are accessed asynchronously, what issues will arise
  • Thoroughness of added tests and any missing edge cases
  • Idiomatic use of the language

@imjoehaines imjoehaines marked this pull request as ready for review August 13, 2020 08:58
@imjoehaines imjoehaines changed the base branch from master to next August 13, 2020 09:48
@imjoehaines imjoehaines merged commit 2720148 into next Aug 13, 2020
@imjoehaines imjoehaines deleted the sidekiq-delivery-method branch August 13, 2020 09:49
@imjoehaines imjoehaines mentioned this pull request Aug 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants