[erlang-questions] Need some advice on implementing a Queue Server

avinash D'silva evnix.com@REDACTED
Thu Jul 30 20:22:07 CEST 2015


Hi,

I am trying to learn Erlang by implementing a small Queueing Server.

What have I done so far?
I have created a basic websocket server using cowboy.

I am trying to implement a Queue which *all processes* can access.

I have used lists which can act as queues.

The basic insert function looks like this:
Queue(Q) ->
        receive
               Msg ->
                    Queue(lists:append(Q,[Msg]))
        end.

To create a Queue called "Q_1"

>  pg2:create(<<"Q_1">>).
>  P = spawn(test,Queue,[[1]]). % spawn queue and insert 1.
>  pg2:join(<<"Q_1">>,P).
>  P ! 2.
>  P ! 3. % add some elements to queue.

to retrieve the elements from the named Queue "Q_1":
1. I use [Px|_]=pg2:get_members()
2. then I would do something like: Px ! POP_ELEMENT


Is there a better or more scalable way of doing this?

Will this work when a lot of clients are connected( around 60), having a
insert rate of 100k elements per hour?

Any help is appreciated :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150730/baead103/attachment.htm>


More information about the erlang-questions mailing list