diff options
Diffstat (limited to '_build/static/archives/extend/2013-September/000242.html')
-rw-r--r-- | _build/static/archives/extend/2013-September/000242.html | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/_build/static/archives/extend/2013-September/000242.html b/_build/static/archives/extend/2013-September/000242.html new file mode 100644 index 00000000..a9e2c705 --- /dev/null +++ b/_build/static/archives/extend/2013-September/000242.html @@ -0,0 +1,191 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<HTML> + <HEAD> + <TITLE> [99s-extend] timeouts and slow clients in cowboy loop handler + </TITLE> + <LINK REL="Index" HREF="index.html" > + <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20timeouts%20and%20slow%20clients%20in%20cowboy%20loop%20handler&In-Reply-To=%3C523C9C42.4040300%40ninenines.eu%3E"> + <META NAME="robots" CONTENT="index,nofollow"> + <style type="text/css"> + pre { + white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */ + } + </style> + <META http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <LINK REL="Previous" HREF="000241.html"> + <LINK REL="Next" HREF="000243.html"> + </HEAD> + <BODY BGCOLOR="#ffffff"> + <H1>[99s-extend] timeouts and slow clients in cowboy loop handler</H1> + <B>Loïc Hoguin</B> + <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20timeouts%20and%20slow%20clients%20in%20cowboy%20loop%20handler&In-Reply-To=%3C523C9C42.4040300%40ninenines.eu%3E" + TITLE="[99s-extend] timeouts and slow clients in cowboy loop handler">essen at ninenines.eu + </A><BR> + <I>Fri Sep 20 21:04:34 CEST 2013</I> + <P><UL> + <LI>Previous message: <A HREF="000241.html">[99s-extend] timeouts and slow clients in cowboy loop handler +</A></li> + <LI>Next message: <A HREF="000243.html">[99s-extend] Cowboy helloworld make fails with missing_beam_file (hipe) +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#242">[ date ]</a> + <a href="thread.html#242">[ thread ]</a> + <a href="subject.html#242">[ subject ]</a> + <a href="author.html#242">[ author ]</a> + </LI> + </UL> + <HR> +<!--beginarticle--> +<PRE>send_after sends an Erlang message to a Pid after N milliseconds. It's +the same as Pid ! Message, except it's sent later. Send it to self(). + +But if you're going to use timestamps then you probably don't need this +timeout, just check the timestamps and close when too slow. + +On 09/20/2013 08:59 PM, akonsu wrote: +><i> Understand about chunks being synchronous. that helps me tremendously to +</I>><i> understand how it works. +</I>><i> +</I>><i> would you give me a sketchy example of how to use send_after in a loop +</I>><i> handler? (sorry I am new to erlang) +</I>><i> +</I>><i> Konstantin +</I>><i> +</I>><i> +</I>><i> 2013/9/20 Loïc Hoguin <<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A> <mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>>> +</I>><i> +</I>><i> chunk only returns when the client has received the chunk, so the +</I>><i> timestamps solution should work. +</I>><i> +</I>><i> As for the timeout, you can simply use erlang:send_after or +</I>><i> something like usual and the message will arrive in info/3. +</I>><i> +</I>><i> +</I>><i> On 09/20/2013 08:54 PM, akonsu wrote: +</I>><i> +</I>><i> thanks! +</I>><i> +</I>><i> how to implement timeout callback manually? if I had receive then I +</I>><i> would just use timeout clause there, but with the handler I do +</I>><i> not know... +</I>><i> +</I>><i> I have doubts about validity of my question on the erlang list. +</I>><i> I later +</I>><i> realised that there is no problem receiving messages in my +</I>><i> handler from +</I>><i> my upstream process, I can do it fast enough and shove +</I>><i> everything to the +</I>><i> response. my real problem is to determine if the http client is +</I>><i> reading +</I>><i> fast enough from the response... +</I>><i> +</I>><i> +</I>><i> 2013/9/20 Loïc Hoguin <<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A> +</I>><i> <mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>> <mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A> +</I>><i> <mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>>>> +</I>><i> +</I>><i> +</I>><i> Loop handlers close after a while regardless of what you +</I>><i> send, it +</I>><i> only checks what the client sends. The best way for you +</I>><i> would be to +</I>><i> disable that timeout and handle it manually. +</I>><i> +</I>><i> As for the second question, I'm still reading the thread on +</I>><i> erlang-questions but I've seen some good ideas about +</I>><i> timestamps so far. +</I>><i> +</I>><i> +</I>><i> On 09/20/2013 08:47 PM, akonsu wrote: +</I>><i> +</I>><i> Hi, +</I>><i> +</I>><i> I am using loop handler and I stream from it: +</I>><i> +</I>><i> info({stream, Part}, Req, S) -> +</I>><i> ok = cowboy_req:chunk(Part, Req), +</I>><i> {loop, Req, S, hibernate}; +</I>><i> +</I>><i> I have two questions: +</I>><i> +</I>><i> 1. on timeouts cowboy sends 204 No Content. In my case +</I>><i> it is not the +</I>><i> right response because I may have already sent some +</I>><i> data. Is +</I>><i> there a way +</I>><i> to send a custom response? +</I>><i> +</I>><i> 2. how to check if the client is too slow and is not +</I>><i> reading the +</I>><i> response stream fast enough? If this happens, then I +</I>><i> need to +</I>><i> disconnect. +</I>><i> +</I>><i> I can live without 1. but I need to figure out 2. +</I>><i> Please help. +</I>><i> +</I>><i> thank you! +</I>><i> Konstantin +</I>><i> +</I>><i> +</I>><i> +</I>><i> ___________________________________________________ +</I>><i> Extend mailing list +</I>><i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A> <mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>> +</I>><i> <mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.__ninenines.eu</A> +</I>><i> <mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>>> +</I>><i> <A HREF="http://lists.ninenines.eu:81/____listinfo/extend">http://lists.ninenines.eu:81/____listinfo/extend</A> +</I>><i> <<A HREF="http://lists.ninenines.eu:81/__listinfo/extend">http://lists.ninenines.eu:81/__listinfo/extend</A>> +</I>><i> +</I>><i> <<A HREF="http://lists.ninenines.eu:81/__listinfo/extend">http://lists.ninenines.eu:81/__listinfo/extend</A> +</I>><i> <<A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>>> +</I>><i> +</I>><i> +</I>><i> +</I>><i> -- +</I>><i> Loďc Hoguin +</I>><i> Erlang Cowboy +</I>><i> Nine Nines +</I>><i> <A HREF="http://ninenines.eu">http://ninenines.eu</A> +</I>><i> +</I>><i> +</I>><i> +</I>><i> +</I>><i> -- +</I>><i> Loïc Hoguin +</I>><i> +</I>><i> Erlang Cowboy +</I>><i> Nine Nines +</I>><i> <A HREF="http://ninenines.eu">http://ninenines.eu</A> +</I>><i> +</I>><i> +</I> + +-- +Loïc Hoguin +Erlang Cowboy +Nine Nines +<A HREF="http://ninenines.eu">http://ninenines.eu</A> + +</PRE> + +<!--endarticle--> + <HR> + <P><UL> + <!--threads--> + <LI>Previous message: <A HREF="000241.html">[99s-extend] timeouts and slow clients in cowboy loop handler +</A></li> + <LI>Next message: <A HREF="000243.html">[99s-extend] Cowboy helloworld make fails with missing_beam_file (hipe) +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#242">[ date ]</a> + <a href="thread.html#242">[ thread ]</a> + <a href="subject.html#242">[ subject ]</a> + <a href="author.html#242">[ author ]</a> + </LI> + </UL> + +<hr> +<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend +mailing list</a><br> +</body></html> |