[LRUG] Making Rails time out
Rob Anderson
rob.anderson at paymentcardsolutions.co.uk
Fri Apr 19 07:45:50 PDT 2013
Thanks Tom - that would indeed be the perfect solution, but we're deployed on Apache sadly.
But I think you're right that this is a web server thing rather than a Rails thing. A long sleep is probably the answer. As it often is on a Friday afternoon.
On 19 Apr 2013, at 15:34, Mr Jaba <the.jaba at gmail.com> wrote:
> This looks like a potential solution:
>
> http://stackoverflow.com/questions/2570489/is-there-anyway-to-make-a-rails-rack-application-tell-the-web-server-to-drop-t
>
> Return a special status code to Nginx which will then silently drop the connection. I think with Rails it will always want to return some kind of response unless you do the sleep, so you might have to do this at the web server level.
>
>
>
>
> On 19 April 2013 15:31, Rob Anderson <rob.anderson at paymentcardsolutions.co.uk> wrote:
> Yes, this would be a good way of implementing the test if I were writing the client. But I'm actually providing the service.
>
> This probably falls into the class of tests which it is the client's responsibility to implement / simulate. But in our particular case it would be handy to have the server be able to do this.
>
>
> On 19 Apr 2013, at 15:22, George Drummond <drummond at rentify.com> wrote:
>
>> If you are testing this in your test suite then use WebMock to mock a timeout
>>
>> https://github.com/bblimke/webmock/issues/16
>>
>>
>> On 19 Apr 2013, at 15:07, Rob Anderson <rob.anderson at paymentcardsolutions.co.uk> wrote:
>>
>>> Hello LRUG
>>>
>>> I have a weird requirement and I can't seem to figure out how to fulfill it using Rails.
>>>
>>> We provide a number of web services to third parties. As part of their testing and accreditation with us they need to execute a variety of test cases.
>>>
>>> Some of the key test conditions involve making sure that exceptions are correctly handled. So if for example they call one of our services and we return a 500 system exception, they handle this gracefully.
>>>
>>> One of the test cases we have come up with is what happens if our service just fails to respond at all - eg we accept the connection and then leave them hanging waiting for a response. This should raise a client timeout and they should handle it appropriately.
>>>
>>> But it s not at all clear how to achieve this in our test system. I could put in some monster sleep command, but I don't really want to block the process - ideally I just want to tell ActionController: forget it, your work is done.
>>>
>>> I suspect maybe this is very difficult / impossible because Apache / Passenger would also need to be told to stand down, but I don't know. Can't find anything on Google either.
>>>
>>> Perhaps this is just an insane test case - but I know I have seen plenty of instances of this happening in the real world when we call other people's web services, so it would be good to be able to simulate it.
>>>
>>> Any thoughts gratefully received
>>>
>>> Rob
>>>
>>>
>>>
>>> _______________________________________________
>>> Chat mailing list
>>> Chat at lists.lrug.org
>>> http://lists.lrug.org/listinfo.cgi/chat-lrug.org
>>
>
>
> _______________________________________________
> Chat mailing list
> Chat at lists.lrug.org
> http://lists.lrug.org/listinfo.cgi/chat-lrug.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lrug.org/pipermail/chat-lrug.org/attachments/20130419/9d389710/attachment-0003.html>
More information about the Chat
mailing list