Comments (3)
Update: I've identified that the issue is caused by using unicorn-rails
in development.
This code allows for an optional config file to be created at config/unicorn/#{environment}.rb
.
I attempted to copy the after_fork
code into this file, but does not resolve the issue. The thread is still dead.
from analytics-ruby.
@shanemcd any chance you can send me what your config/unicorn looks like?
using my super janky rails test project, I was able to see events being sent to segment.io: https://github.com/calvinfo/segmentio-rails-test/blob/master/config/unicorn/development.rb
we aren't really rails guys though, so there could be something obvious which I'm missing. thanks for the detailed report so far! :)
from analytics-ruby.
I am not quite sure what was going on yesterday, but here is what worked for me:
In an initializer:
Analytics = AnalyticsRuby
This was necessary because assigning the alias in the unicorn config was throwing uninitialized constant WhateverController::Analytics
I'm not sure how you got this to work, but the only thing I can think of is a difference between Rails 3 and Rails 4?
Moving on...
In config/unicorn/development.rb
:
worker_processes 3
timeout 30
preload_app true
before_fork do |server, worker|
if defined?(ActiveRecord::Base)
ActiveRecord::Base.connection.disconnect!
::Rails.logger.info('Unicorn is about to fork workers, so disconnecting from the database in this process')
end
sleep 1
end
after_fork do |server, worker|
if defined?(ActiveRecord::Base)
ActiveRecord::Base.establish_connection
::Rails.logger.info('Unicorn worker process: connecting to the database')
end
if defined?(Analytics)
Analytics.init({
secret: Settings.segment_io.try(:secret_key),
on_error: Proc.new { |status, msg| print msg }
})
::Rails.logger.info('Initializing Segment.io Library')
end
end
from analytics-ruby.
Related Issues (20)
- at_exit question HOT 1
- Error in documentation HOT 2
- Issues with sending several events at the same moment HOT 1
- anonymous_id HOT 2
- Adding message_id to track call using js2.0 style messageId fails to process HOT 2
- Using `Analytics.flush` to ensure event delivery order? HOT 4
- Empty string user id's silently fail to send events HOT 1
- window._cio.page is not a function HOT 2
- override listid for mailchimp HOT 5
- Modify timestamp to have 3 fractional digits
- Convert project to Github Actions
- Missing some tracked events in debugger HOT 2
- ::Segment is too generic a namespace HOT 1
- API returns a 200 with wrong auth key HOT 6
- Convert to Github Actions HOT 1
- wrong argument type nil (expected String) HOT 1
- [Idea] Avoid silent failures or make more noise when maximum JSON message size reached
- Nil error message in Segment::Analytics::Response object HOT 2
- Future of this gem. HOT 1
- Prep for release
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from analytics-ruby.