[exim] Small modification for queue runners?

Top Page
Delete this message
Reply to this message
Author: Michael Haardt
Date:  
To: exim-users
Subject: [exim] Small modification for queue runners?
Hello,

I just had an idea how to improve queue run performance on larger queues:
How about having each queue runner not spawn a single delivery attempt
at a time, but a fixed number?

Right now, you can configure the amount of queue runners in total, but
quite often I see them stepping on each others toes. A single queue
runner that keeps a fixed number of deliveries running would not attempt
to deliver a message that is being tried by another queue runner, just
to find that the message is locked.

Right now, a queue runner forks a child and listens on a pipe to it.
The new queue runner had to have an array of pipes to listen to, starting
a new child when one ends, unless it reached the end of the queue.
Keeping 20 children running, the queue would be traversed just 1/20th
compared to 20 queue runners with one child each.

Just an idea. Any comments?

Michael