-
Notifications
You must be signed in to change notification settings - Fork 142
Comparing changes
Open a pull request
base repository: rails/solid_queue
base: v1.0.2
head repository: rails/solid_queue
compare: v1.1.0
- 20 commits
- 20 files changed
- 7 contributors
Commits on Nov 17, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 8cc892d - Browse repository at this point
Copy the full SHA 8cc892dView commit details
Commits on Nov 21, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 6b32e17 - Browse repository at this point
Copy the full SHA 6b32e17View commit details
Commits on Nov 26, 2024
-
I ran into the issues described here when trying to install necessary gems to contribute: brianmario/mysql2#1350 Upgrading seems to have resolved the issue.
Configuration menu - View commit details
-
Copy full SHA for d12e7a2 - Browse repository at this point
Copy the full SHA d12e7a2View commit details
Commits on Nov 27, 2024
-
Update README with process errors introduced in #277
Closes #422. Thanks to @salmonsteak1 for spotting this.
Configuration menu - View commit details
-
Copy full SHA for c521c6d - Browse repository at this point
Copy the full SHA c521c6dView commit details
Commits on Nov 29, 2024
-
Bump actionpack from 7.1.3.4 to 7.1.4.1
Bumps [actionpack](https://github.com/rails/rails) from 7.1.3.4 to 7.1.4.1. - [Release notes](https://github.com/rails/rails/releases) - [Changelog](https://github.com/rails/rails/blob/v8.0.0/actionpack/CHANGELOG.md) - [Commits](rails/rails@v7.1.3.4...v7.1.4.1) --- updated-dependencies: - dependency-name: actionpack dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Configuration menu - View commit details
-
Copy full SHA for d56f997 - Browse repository at this point
Copy the full SHA d56f997View commit details -
Bumps [puma](https://github.com/puma/puma) from 6.4.2 to 6.4.3. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](puma/puma@v6.4.2...v6.4.3) --- updated-dependencies: - dependency-name: puma dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com>
Configuration menu - View commit details
-
Copy full SHA for 66fdfda - Browse repository at this point
Copy the full SHA 66fdfdaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 857233f - Browse repository at this point
Copy the full SHA 857233fView commit details -
Merge pull request #426 from jherdman/upgrade-mysql2-gem
Upgrade mysql2 gem
Configuration menu - View commit details
-
Copy full SHA for aa104e1 - Browse repository at this point
Copy the full SHA aa104e1View commit details
Commits on Dec 1, 2024
-
Update app/models/solid_queue/queue.rb
Co-authored-by: Rosa Gutierrez <rosa.ge@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 242fd15 - Browse repository at this point
Copy the full SHA 242fd15View commit details -
Configuration menu - View commit details
-
Copy full SHA for 50003ac - Browse repository at this point
Copy the full SHA 50003acView commit details -
Merge pull request #415 from andersonkrs/main
Add helper method to query the latency on the Queue object
Configuration menu - View commit details
-
Copy full SHA for fabf713 - Browse repository at this point
Copy the full SHA fabf713View commit details
Commits on Dec 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for be8f367 - Browse repository at this point
Copy the full SHA be8f367View commit details -
* Adds to RVM .ruby-gemset to .gitignore for RVM and gemset holdouts. * Updates Gemfile.lock to include arm64-darwin-24 (weird that it's missing) * Adds 4 development dependencies to quiet deprecation warnings * Updates rubocop to allow Ruby 3.3 syntax, matching .ruby-version
Configuration menu - View commit details
-
Copy full SHA for 0e5561b - Browse repository at this point
Copy the full SHA 0e5561bView commit details -
Silence test output for expected exceptions
SolidQueue has excellent built-in error reporting. While this is fantastic for SQ users, it is less than ideal for testing SolidQueue because any test that deliberately uses or triggers an exception produces voluminous error reporting. This error reporting is hugely valuable when the exception is not expected, but distracting and of limited value for expected use-cases, especially when the test confirms the correct outcomes via assertions. This commit adds: * A generic test-specific Exception class: ExpectedTestError This allows testing for specific exceptions while retaining all error reporting infrastructure for unexpected exceptions. * Two helper methods for silencing on_thread_error output These methods accept an Exception or Array(Exception) and simply does not call the output mechanism if the exception passed to on_thread_error matches. This way, any unexpected error during test still reports in a highly visible manner while the exceptions being tested are validated via assertions. * Replaces the stock on_thread_error with one that ignores ExpectedTextError. Updated several tests from using the ruby stock RuntimeError to ExpectedTestError. * Configures tests to run with YJIT enabled This is to test under likely production deployment configuration, not for performance reasons. Note: With the very recent reporting on M4's crashing on Mac's with YJIT enabled, we might want to either defer this change or add a conditional to opt in until the problem is resolved.
Configuration menu - View commit details
-
Copy full SHA for 6cc550e - Browse repository at this point
Copy the full SHA 6cc550eView commit details -
Reimplement Interruptible using Thread#queue
* Replaces a little Unix cleverness with a standard Ruby class. This pushes the responsibiity for meeting the SQ requirements from SQ to stock Ruby * Delivers equivelent performance, identical API, and API behaviors with the original implementation (see note below on Futures) * Mostly fixes a *platform / version dependent* issue with MySQL (see below) * Meets 100% of SQ's functional requirements: * interruptible_sleep: a potentially blocking operation interruptible via either a "wake_event" (possibly requested prior to entering interruptible_sleep) or blocking until a timeout. * wake_up / interrupt: a Signal#trap and thread-safe method that does not require user-level synchronization (with the risk of not fully understanding all of the complexities required) code that either interrupts an inflight-interruptible_sleep or enqueues the event to processed in the invocation of interruptible_sleep * Interruptible's API is trivially reproduceable via Thread::Queue * interruptible_sleep => Queue.pop(timeout:) where pushing anything into the queue acts as the interrupt event and timeout is reliable without any extra code or exception handling. * wake_up / interrupt => Queue.push(Anything) is thread, fiber, and Signal.trap safe (can be called from anywhere) and captures all wake_up events whenever requested, automaticall caching any "event" not processed by a currently executing interruptible_sleep matching existing functionality exactly. Why the Future in #interruptible_sleep? While Thread::Queue micro benchmarks as having the same performance on the main thread Vs. any form of a sub-thread (or Fiber) and self-pipe, when running the SQ test suite we see a 35% slow down Vs. the original self-pipe implenentation. One assumes this slowdown would manifest in production. By moving the just the Queue#pop into a separate thread via Concurrent::Promises.future we get +/- identical performance to the original self-pipe implementation. I'm assuming this root causes to Ruby main-thread only housekeeping and/or possibly triggering a fast/slow path issue. Why a Future Vs. Thread#new for each interruptible_sleep call? Every other threaded operation in SQ is implemented using Concurrent Ruby. Using a Future is for code and architectual consistency. There is no difference in performance or functionality between the two. MySQL *only* issues: There seems to be a *platform specific* or *version specific* problem with MySQL database connectivity and/or broken self-pipes leading to randomly failing tests and a stream of distracting backtraces *even with successful* tests. Adding to the complexity sometimes, the lost database connection can self-heal -- HOWEVER -- this takes time and given how much of the test suite has time based assertions, leads to additional random test failures. These, or similar, issues have been observed in the past when changes to the MySQL client library forced changes in the mysql2 gem. With the Thread::Queue based implementation of the Interruptible concern, the random failures and amount of spurious output are dramatically improved (but not eliminated).
Configuration menu - View commit details
-
Copy full SHA for a152f26 - Browse repository at this point
Copy the full SHA a152f26View commit details
Commits on Dec 3, 2024
-
The previous version of this gem was struggling with reline.
Configuration menu - View commit details
-
Copy full SHA for 2e9eab1 - Browse repository at this point
Copy the full SHA 2e9eab1View commit details -
Don't add
solid_queue.connects_to
configuration more than onceOr, in other words, make the install generator idempotent. Inspired by #349
Configuration menu - View commit details
-
Copy full SHA for 76b7eaf - Browse repository at this point
Copy the full SHA 76b7eafView commit details -
* Streamlined a comment in the code * Removed unneeded gemspec developer_dependencies that we get handled via the upgrade to Rails 7.1.4.1 * Added a gemspec version dependency required for keyword argument support * Rebase to main
Configuration menu - View commit details
-
Copy full SHA for 17c4cd5 - Browse repository at this point
Copy the full SHA 17c4cd5View commit details
Commits on Dec 4, 2024
-
Merge pull request #417 from ikyn-inc/interruptible
Reimplement Interruptible
Configuration menu - View commit details
-
Copy full SHA for 4f29fc8 - Browse repository at this point
Copy the full SHA 4f29fc8View commit details
Commits on Dec 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 18e7b0e - Browse repository at this point
Copy the full SHA 18e7b0eView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v1.0.2...v1.1.0