Skip to content
Snippets Groups Projects
Commit fb6aa7ad authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Add tracking of delay to streaming API

parent 6cdcac13
No related branches found
No related tags found
No related merge requests found
...@@ -123,7 +123,7 @@ const Modal = React.createClass({ ...@@ -123,7 +123,7 @@ const Modal = React.createClass({
window.addEventListener('keyup', this._listener); window.addEventListener('keyup', this._listener);
}, },
componentDidUnmount () { componentWillUnmount () {
window.removeEventListener('keyup', this._listener); window.removeEventListener('keyup', this._listener);
}, },
......
...@@ -30,6 +30,7 @@ class FeedManager ...@@ -30,6 +30,7 @@ class FeedManager
end end
def broadcast(timeline_id, options = {}) def broadcast(timeline_id, options = {})
options[:queued_at] = (Time.now.to_f * 1000.0).to_i
ActionCable.server.broadcast("timeline:#{timeline_id}", options) ActionCable.server.broadcast("timeline:#{timeline_id}", options)
end end
......
...@@ -101,7 +101,15 @@ const streamFrom = (redisClient, id, req, output, needsFiltering = false) => { ...@@ -101,7 +101,15 @@ const streamFrom = (redisClient, id, req, output, needsFiltering = false) => {
log.verbose(`Starting stream from ${id} for ${req.accountId}`) log.verbose(`Starting stream from ${id} for ${req.accountId}`)
redisClient.on('message', (channel, message) => { redisClient.on('message', (channel, message) => {
const { event, payload } = JSON.parse(message) const { event, payload, queued_at } = JSON.parse(message)
const transmit = () => {
const now = new Date().getTime()
const delta = now - queued_at;
log.silly(`Transmitting for ${req.accountId}: ${event} ${payload} Delay: ${delta}ms`)
output(event, payload)
}
// Only messages that may require filtering are statuses, since notifications // Only messages that may require filtering are statuses, since notifications
// are already personalized and deletes do not matter // are already personalized and deletes do not matter
...@@ -127,13 +135,11 @@ const streamFrom = (redisClient, id, req, output, needsFiltering = false) => { ...@@ -127,13 +135,11 @@ const streamFrom = (redisClient, id, req, output, needsFiltering = false) => {
return return
} }
log.silly(`Transmitting for ${req.accountId}: ${event} ${payload}`) transmit()
output(event, payload)
}) })
}) })
} else { } else {
log.silly(`Transmitting for ${req.accountId}: ${event} ${payload}`) transmit()
output(event, payload)
} }
}) })
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment