> hello,
>
> in working with the AMQP emperor i have a few note (the first two
> issues are critical for me):
>
> == issues ==
>
>  - [1.2.4, HEAD] anonymous queues created by emperor are not
> garbage-collected!
> this one is nasty! the emperor connects, does it's thing, and later
> dies ... but the queue sticks around collecting messages and dust.  i
> will porbably submit a patch for this unless you beat me Roberto (i
> think you just have to define the queue EXCLUSIVE or some such)
>
> - [1.2.4, HEAD] emperor fails if exchange is DURABLE, or not type-FANOUT
> any pre-configuration on the exchange that doesn't match what uWSGI
> would create causes failure (AMQP error waiting for
> Exchange.declare-ok)
>
> - [1.2.4, HEAD] missing port does not default to 5672
> ... instead it either does nothing at all (1.2.4), or fails connection
> repeatedly (HEAD)
>
> - [HEAD] `amqp://user:pass@host:port/` not parsed correctly
> username and password fail when in the connection string.  if `user`
> or `pass` are defined here the connection fails; if port is NOT
> defined connection fails (should use AMQP default of 5672)
>
> - [HEAD] unable to authenticate unless using guest/guest
> authentication fails no matter what i try ... tested by replacing
> guest with test/test ... works in 1.2.4
>
> == requests ==
>
> - configurable exchange name other than `uwsgi.emperor`
> amqp://user:pass@host:port/vhost?name=uwsgi.maximo
>
> - configurable exchange types (topic exchange with `#` binding is all
> but identical to fanout)
> amqp://user:pass@host:port/vhost?name=uwsgi.maximo&type=topic
>
> - configurable routing key subscriptions (eg, a topic exchange that
> only listens to `svr.grp.0.#`)
> amqp://user:pass@host:port/vhost?name=uwsgi.maximo&type=topic&key=svr.grp.0.#
>                                                                  prob
> need to escape # or use a different char ^^^^
>
> ====
>
> ... any of this sound unreasonable/off-the-wall?  i dont think any of
> it breaks backwards-compat. if some are more intrusive let me know and
> ill open tickets.
>
> --
>
> C Anthony
> _______________________________________________
> uWSGI mailing list
> [email protected]
> http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
>


I suggest you to work with 1.3, as its emperor has been greatly improved.

The AMQP part is now a plugin, and it should be a lot easier understanding
it:

http://projects.unbit.it/uwsgi/browser/plugins/emperor_amqp/emperor_amqp.c

Basically the uwsgi_imperial_monitor_amqp_init functions is called on
emperor startup and its file descriptor is added to the emperor event
queue.

Whenever the emperor receives an amqp event in the queue it run the
uwsgi_imperial_monitor_amqp_event function.

Every --emperor-freq seconds the emperor will check if the amqp server is
disconnected and will try to re-connect (check
uwsgi_imperial_monitor_amqp)

Feel free to make all of the mods you want (send pull request from github
if you prefer)

-- 
Roberto De Ioris
http://unbit.it
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to