You could write messages to a queue model and set up a cron job that
picks up and dispatches "unprocessed" messages every X minutes. If the
cron job manages to process a message successfully, it marks that
message as "processed" or removes it from the queue. The messages
could be in a simple-to-parse format like JSON. This way, you can use
this mechanism for different kinds of events and activities without
tying it to one model.
Take a look at the Django Queue Service for a start:
http://code.google.com/p/django-queue-service/
For Django 1.0 compatibility, you will need to pick up the latest
branch from here:
http://django-queue-service.googlecode.com/svn/branches/unstable/
-Rajesh D