[erlang-questions] Terminate process if it is slow at receiving messages

akonsu akonsu@REDACTED
Fri Sep 20 18:38:42 CEST 2013


thanks. but this would generate twice as much traffic because of the
acknowledgement responses. Maybe instead of erlang messages I can use
sockets to communicate?


2013/9/20 Michael Loftis <mloftis@REDACTED>

> Pretty simple actually...send them a message, perhaps with a timestamp
> (os:timestamp()) - the expectation is that the process responds back.
> If it does not at all within your window, kill it.  If it does, but is
> unacceptably slow, kill it.
>
> Not at all difficult.
>
> On Fri, Sep 20, 2013 at 8:08 AM, akonsu <akonsu@REDACTED> wrote:
> > Hello,
> >
> > I have posted this question to stackoverflow
> > (
> http://stackoverflow.com/questions/18895614/terminate-process-if-it-is-slow-at-receiving-messages
> )
> > and received one helpful response, but I am still not clear about the
> right
> > way to do it.
> >
> >  I also have seen this thread:
> > http://erlang.org/pipermail/erlang-questions/2011-June/059335.html,
> which is
> > somewhat similar but it still did not hep me.
> >
> > I would appreciate more help. Here is the question:
> >
> >
> >
> > I have a data source process that sends messages to worker processes. To
> > keep memory consumption under control, I need to terminate the workers
> that
> > are slow retrieving their messages from their mailboxes.
> >
> > I am new to Erlang, I would appreciate any pointers. If this is
> difficult to
> > accomplish with Erlang messages, maybe I can use sockets? If so, are
> there
> > examples?
> >
> > EDIT:
> >
> > I have a registered process that reads from the web and generates a lot
> of
> > data. It sends these data to all the "subscribed" processes using Erlang
> > messages. For each particular piece of data, it sends the same message to
> > all subscribers.
> >
> > I also have a web server that streams the data that the registered
> process
> > reads. So, when a http client connects, the web server creates a process
> and
> > this process subscribes to the registered process and starts receiving
> its
> > messages.
> >
> > The registered process uses monitors to monitor subscribers. The
> subscribers
> > are controlled by the web server, and when a connection is closed, the
> > process that were serving this connection, dies.
> >
> > There is no acknowledgement, that is, subscribers do not respond when a
> > message is sent to them. Although I can program them this way, but I
> think
> > it is too much traffic.
> >
> > Basically I want to close the connection if a http client is too slow.
> >
> > _______________________________________________
> > erlang-questions mailing list
> > erlang-questions@REDACTED
> > http://erlang.org/mailman/listinfo/erlang-questions
> >
>
>
>
> --
>
> "Genius might be described as a supreme capacity for getting its possessors
> into trouble of all kinds."
> -- Samuel Butler
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130920/c3c9102c/attachment.htm>


More information about the erlang-questions mailing list