prototype wrapping of query execution for AR cursor#59
Draft
Conversation
Contributor
|
Hmm. I'd love to make it work nicely with AR's multi-database feature. Ideally with developers not having to pass I think we could scope this out to vanilla ActiveRecord gist like: enum = Enumerator.new do |yielder|
ActiveRecord::Base.connected_to(role: :foo) do
Shop.find_each { |shop| yielder.yield(record) }
end
end
enum.each do
ActiveRecord::Base.connected_to(role: :bar) do
# do something else
end
endWould that work? If not maybe it's an edge case of ActiveRecord that we could take care of upstream. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
hey @kirs @byroot i'm doing a prototype here, no real intentions of merging, any comments welcome. I am doing this for a personal project.
here's the context: I have a vanilla rails app and I'm trying to use multiple connections within the same job. I am using rails' connected_to block mechanism.
I am running into a problem where I switch connections during each_iteration, which makes the job finish after the first batch is done. It seems that AR switches the default to connection to whatever
connected_toblock was called last.In any case, this is an attempt to make it possible to pass a block around AR enumerator builder, so I can wrap the query execution in the appropriate connected_to block.
usage is kinda weird but not the end of the world: