mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: defer actions in a static method
This avoids capturing a huge closure and passing to defer
This commit is contained in:
parent
d3b4f24ced
commit
5a6d1ee257
@ -783,8 +783,8 @@ class TopicsController < ApplicationController
|
|||||||
user_id = (current_user.id if current_user)
|
user_id = (current_user.id if current_user)
|
||||||
track_visit = should_track_visit_to_topic?
|
track_visit = should_track_visit_to_topic?
|
||||||
|
|
||||||
Scheduler::Defer.later "Track Link" do
|
if !request.format.json?
|
||||||
IncomingLink.add(
|
hash = {
|
||||||
referer: request.referer || flash[:referer],
|
referer: request.referer || flash[:referer],
|
||||||
host: request.host,
|
host: request.host,
|
||||||
current_user: current_user,
|
current_user: current_user,
|
||||||
@ -792,14 +792,26 @@ class TopicsController < ApplicationController
|
|||||||
post_number: params[:post_number],
|
post_number: params[:post_number],
|
||||||
username: request['u'],
|
username: request['u'],
|
||||||
ip_address: request.remote_ip
|
ip_address: request.remote_ip
|
||||||
)
|
}
|
||||||
end unless request.format.json?
|
# defer this way so we do not capture the whole controller
|
||||||
|
# in the closure
|
||||||
|
TopicsController.defer_add_incoming_link(hash)
|
||||||
|
end
|
||||||
|
|
||||||
|
TopicsController.defer_track_visit(topic_id, ip, user_id, track_visit)
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.defer_track_visit(topic_id, ip, user_id, track_visit)
|
||||||
Scheduler::Defer.later "Track Visit" do
|
Scheduler::Defer.later "Track Visit" do
|
||||||
TopicViewItem.add(topic_id, ip, user_id)
|
TopicViewItem.add(topic_id, ip, user_id)
|
||||||
TopicUser.track_visit!(topic_id, user_id) if track_visit
|
TopicUser.track_visit!(topic_id, user_id) if track_visit
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.defer_add_incoming_link(hash)
|
||||||
|
Scheduler::Defer.later "Track Link" do
|
||||||
|
IncomingLink.add(hash)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def should_track_visit_to_topic?
|
def should_track_visit_to_topic?
|
||||||
|
Loading…
Reference in New Issue
Block a user