Is there a way to create an object that is a singleton (one instance per user session) and is kept as long as the user session exists? The object handles a connection to a remote server that is very heavy to establish so I would like to reuse the same object in following requests. I have tried class variables and global variables but both are discarded at the request''s end. Any suggestions are very welcome. Regards Erik -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 27 March 2010 15:44, Erik Lindblad <erik-gTO0lQh45js@public.gmane.org> wrote:> Is there a way to create an object that is a singleton (one instance > per user session) and is kept as long as the user session exists? The > object handles a connection to a remote server that is very heavy to > establish so I would like to reuse the same object in following > requests.You have answered your own question, put it in the session. If it is a large object then put it in the db and reference it from the session. Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Hi Colin and thanks for the suggestion. But the problem is more intricate than this, I am afraid. The reason I want to keep the object is that it connects via sockets to a pool of servers (at least 4 of them). When the object is marshaled, either for storage in the session or in the db these connections are lost. Maybe there is another solution but as I understand it the only way to keep these connections is to keep the object itself, not a serialized copy. Extremely grateful for any further input. Regards Erik On 27 mar, 17:52, Colin Law <clan...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:> On 27 March 2010 15:44, Erik Lindblad <e...-gTO0lQh45js@public.gmane.org> wrote: > > > Is there a way to create an object that is a singleton (one instance > > per user session) and is kept as long as the user session exists? The > > object handles a connection to a remote server that is very heavy to > > establish so I would like to reuse the same object in following > > requests. > > You have answered your own question, put it in the session. If it is > a large object then put it in the db and reference it from the > session. > > Colin-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Mar 27, 5:33 pm, Erik Lindblad <e...-gTO0lQh45js@public.gmane.org> wrote:> Hi Colin and thanks for the suggestion. But the problem is more > intricate than this, I am afraid. The reason I want to keep the object > is that it connects via sockets to a pool of servers (at least 4 of > them). When the object is marshaled, either for storage in the session > or in the db these connections are lost. Maybe there is another > solution but as I understand it the only way to keep these connections > is to keep the object itself, not a serialized copy. >I suspect class variables etc are only vanishing because you are in development mode. In production mode they will persist. Fred -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Excellent, you are right. I thought I tried that but I have tried many combinations so I must have done it for something that was not persistent in itself. @@variable worked when in production mode. You made me a very happy camper. Thanks. Erik On 27 mar, 19:03, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Mar 27, 5:33 pm, Erik Lindblad <e...-gTO0lQh45js@public.gmane.org> wrote: > > > Hi Colin and thanks for the suggestion. But the problem is more > > intricate than this, I am afraid. The reason I want to keep the object > > is that it connects via sockets to a pool of servers (at least 4 of > > them). When the object is marshaled, either for storage in the session > > or in the db these connections are lost. Maybe there is another > > solution but as I understand it the only way to keep these connections > > is to keep the object itself, not a serialized copy. > > I suspect class variables etc are only vanishing because you are in > development mode. In production mode they will persist. > > Fred-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 27 March 2010 18:13, Erik Lindblad <erik-gTO0lQh45js@public.gmane.org> wrote:> Excellent, you are right. I thought I tried that but I have tried many > combinations so I must have done it for something that was not > persistent in itself. @@variable worked when in production mode. You > made me a very happy camper.As a matter of interest how are you deciding when to release the connection? Also don''t forget that if you ever went to multiple servers to serve your app that successive requests from a user may not go to the same server. Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.