Comments (5)
Hi,
I'm not really familiar with celluloid and if it works well with httpclient (the underlying HTTP lib we're using). If it's using multiple threads there might be some concurrency issue in regards to keep-alive. I recommend using 1 pusher instance per thread to see if it fixes the issue. Concurrent access to $outstanding_requests
might also be an issue but that shouldn't affect the pusher gem.
The timeout is the default one in the library, see 7dca547 . Any link between your server and ours might fail so adding a retry is definitely a good idea.
from pusher-http-ruby.
It might be easier to create 8 threads and then publish to a Queue object like that: https://gist.github.com/zimbatm/334b4337e61a43e12908
from pusher-http-ruby.
@zimbatm I'm experiencing thread-safety problems as well. Try to not reuse the same Pusher::Client
instance, but create a new one before to use it. https://gist.github.com/zimbatm/334b4337e61a43e12908#file-test-rb-L19
It will be probably slower, but better safe than sorry.
from pusher-http-ruby.
Unless Celluloid is changing ruby radically it should be safe enough to have 1 ruby client per thread. Creating a new instance for each request means not being able to use HTTP keep-alive.
from pusher-http-ruby.
Closing for lack of reproducibility. I believe Celluloid is also now deprecated. For example sidekiq has switched to use the concurrent-ruby gem.
from pusher-http-ruby.
Related Issues (20)
- Handling payload bigger than 10KB HOT 1
- How do you disconnect from the server side? HOT 1
- Pusher event namespaces? HOT 4
- Improve Pusher::Error for server side errors HOT 2
- Outdated changelog HOT 3
- Pusher : Error : {"type":"WebSocketError","error":{"type":"PusherError","data":{"code":1006,"message":"Connection interrupted (200)"}}} HOT 2
- Add Support for Encrypted Channels HOT 1
- Cluster should only override default if non-nil HOT 3
- Pusher.cluster delegates to Pusher::Client#cluster which is not defined HOT 5
- Libsodium dependency HOT 1
- changelog is not clear about breaking changes from v1.xx -> v2.xx HOT 2
- Can't set encryption_master_key_base64 using the global configuration style. HOT 3
- DEPRECATION WARNING `request#content_type` in Rails v7.0.1 HOT 5
- Pusher::Webhook#event for presence channel missing `user_info` HOT 1
- Pusher 2.0.3 + Pusher-Fake 3.0.1 + Webmock breaks HOT 2
- Replace httpclient with a more recent updated http client HOT 3
- Reporting a vulnerability HOT 1
- Pusher.use_tls = false vs Pusher.encrypted = false HOT 2
- Missing method to implement user authentication flow HOT 2
- Rails 7.1 will return Content-Type header without modification. If you want just the MIME type, please use `#media_type` instead.
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 pusher-http-ruby.