Ask Your Question

How does askbot send email notifications?

asked 2013-10-16 09:47:35 -0500

pajju's avatar

updated 2013-10-16 09:50:37 -0500

I configured the mailbox in file for email settings and its working fine.

I was checking the askbot code for email alerts ( send_email_alerts) and how askbot email-alerts work.

But, I did not understand how -- the email-alert concept works!

I have doubts -

  1. Posting the answer Submit-Button takes a lot of time in cases where - there are users subscribed/following that question via email.

    • Is this slow because on-submit, the email is not sent asynchronously? (should I use celery for background email sending?)
  2. what is the purpose of that cron job? i.e send_email_alerts?

    • What does that cron job do? Should I configure that separately?


edit retag flag offensive close merge delete


I also see such a problem, that answer posting takes really long (up to 15 seconds). After the answer was posted, I see instantly the e-mail, so the e-mail sending process may be the problem. But the comment takes only short time period... what happens when I have 100+ subscriptions for my whole forum..

Toms's avatar Toms  ( 2013-10-17 08:21:20 -0500 )edit

@Toms Agreed. I think the issue is sending emails, not in the background. So it takes 10secs to submit a new answer, if email-notify was set to instant! @Evgeny should confirm this. I'm waiting for his thoughts.

pajju's avatar pajju  ( 2013-10-17 08:32:55 -0500 )edit

@pajju how did you setup email notification? Can you provide some information?

SocialQA's avatar SocialQA  ( 2013-12-11 19:54:24 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2013-10-17 12:30:19 -0500


Basically notifications work in two ways:

Instant Notification

This is sent if the user has "instantly" selected in the subscription tab on his profile .

Askbot can be configured to use Celery to queue the email sending task, so the issue of posting taking a long time is solved this way, information about this in the oficial documentation.

If you don't use celery your site may take a long time to post new content because the emails will be sent synchronously and if you have many users with this option selected, an email will be sent to each subscribed user at that time, so that's why it takes a long time to post content.

Daily/Weekly Notifications

This is done with the send_email_alerts management command as a cronjob, this cronjob needs to be configured to make it work.

There is a sample cronjob file on the repository this cronjob needs to be run daily and it will send the notifications according to the user's configuration.

Note: in this cronjob command you might want to include Django's clearsessions management command to delete old session data and save space on the database (info here)

edit flag offensive delete link more


Perfect. perfect. Perfect. Answer.! :)

pajju's avatar pajju  ( 2013-10-17 12:47:29 -0500 )edit

currently its happening synchronously. Can't we do that with a separate Thread? i.e Why should we wait for that Email-event to happen? I mean the HTTP response should be sent back to the user immediately(instead of waiting for those events to happen) . And Email-Instant delivery option can be better handled with a separate thread. Right? @Evgeny@Fitoria@Toms

pajju's avatar pajju  ( 2013-10-17 12:56:26 -0500 )edit

@pajju not sure about if that is doable, but celery works just fine and it solves that issue, also the sending tweet feature uses Celery (if my mind does not fails).

Fitoria's avatar Fitoria  ( 2013-10-17 12:57:56 -0500 )edit

I've used celery. Celery is a big process by itself to manage. I'll check that code and how the pieces work together. Again thanks for confirming the expected behavior of notifications. Should help me better understand and explore Codebase. ;) @Fitoria

pajju's avatar pajju  ( 2013-10-17 13:07:26 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2013-10-16 09:47:35 -0500

Seen: 5,484 times

Last updated: Oct 17 '13