Mail Generation Queue (formerly called Event Queue)

Mail Generation Queue is a component that generates email items asynchronously. Email items are then delivered via Jira's Mail Queue and Outgoing Mail Server or via the Outgoing Mail Connections configured in Email This Issue.

Below are some metrics to monitor the internal status of the queue.

The Mail Queue page is useful to monitor the internal status of the queue and to adjust some parameters.


AttributeDescription
Total QueuedTotal number of email actions queued
Total CompletedTotal number of email actions completed
Currently on Queue

Total number of email actions queued for processing. 

If you experience that hundreds or thousands of items are waiting on the queue as an average, consider increasing the number of worker threads.

Active Worker ThreadsCurrent number of active worker threads processing the email actions.
Average Time in Queue (ms)

Average time of the last 100 email actions spent on the queue.

Time metric exludes the default queue delay.

Maximum Worker Threads
Maximum number of worker threads to process the email actions.
Number may vary from 0 to 64.


0 threads

Setting the maximum worker threads to 0 disables asynchronous processing.

Email actions will then be processed synchronously.

Maximum number of items waiting on the queue

This is the maximum number of items on the mail queue. 

Although the items on the queue are small (less than 10Kbyte each), the more items are waiting on the queue (as per the Currently on Queue value above), the more memory is allocated.

Theoretically this may lead to Out Of Memory errors putting the system stability at risk. Therefore a hard limitation is introduced to prevent this.

Even the largest Jira instances have normally not more than a few hundred items on the queue as an average.

If you experience this constantly, consider increasing the number of worker threads.



Email Actions processed via the Mail Queue

Email actions are methods to send emails using Email This Issue. 

Email ActionExecuted via the Mail Queue asynchronously

Emails sent manually using the Email Button and Email Screen

(error) Manual emails are dispatched synchronously

Emails sent using the Email Issue Filters feature from the Issue Navigator

(tick) Bulk emails are always sent asynchronously

Emails sent using the Email This Issue Workflow post-function

(tick) if there is a JQL condition in the post function

(error) Otherwise

Emails sent as part of Event Notifications

(tick) Event notifications are always processed asynchronously

Emails sent as an auto-response for incoming emails

(tick) Event notifications are always processed asynchronously

Emails sent via the Email This Issue Rest API

(tick) Event notifications are always processed asynchronously


Asynchronous vs Synchronous Processing


ProsCons
Asynchronous

Operations performed by users complete faster.

Resilient to internal synchronization of resources like database and indexes.

Especially useful when using conditional event notifications or workflow post functions (JQL filter in Email This Issue)

Mail queue takes some memory, it may be necessary increase max heap size.

Mail queue needs some monitoring to properly adjust the queue size, and processing delay.

The Mail Queue has an internal default delay of 30s. Mail items placed on the queue are processed at least 30sec later.

SynchronousInstant sending of emails

Slows down user actions via the user interface.

Subject to incorrect evaluation of JQL conditions in Email This Issue notifications and workflow post functions.