The event system in pyramid is simple and kicks ass.
 
I use it to do the following....

1: notify interested users about interesting things via email or sms based 
on their profile preferences.

2: notify the js clients  running in the browser via pubnub(
http://www.pubnub.com/) of interesting things that just happened on the 
system(user logged in, added new comment etc...)

3: schedule a map reduce job to calculate and aggregate statistics when 
certain things change in the data.

All of these have one thing in common

1: an event is raised somewhere in the code that a handler receives, 
serializes and posts it on one or more task queues. 

2: a process on the other side is consuming messages from the queue(s) and 
doing all the cool stuff. 

If you are on appengine, scheduled tasks consumed by back end instances are 
great for this. 

If you want to go enterprisey, there's rabbitmq and you can interface with 
it via celery or whatever.

if you want to go the low tech route you could just write another pyramid 
application or set of url/view to post to to actually do the work And 
communicate with it through a queuing system. and restrict access to the 
local IP. 

or if you think the work that needs to be done is not going to 
substantially effect the response time(or you just don't care) you can do 
it in your event handlers. 

The point is, the event system does exactly what it advertises, it allows 
you to publish events in your app and subscribe to them with handlers in 
your app. The heavy lifting is done by your handlers and is only limited by 
your imagination, not the event system. :)


-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/pylons-discuss/-/rpp_-rXNhogJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to