[comp.mail.sendmail] fast and slow queues

andy@jhunix.HCF.JHU.EDU (Andy S Poling) (02/20/91)

I got tired of watching our queue-running sendmail daemon wasting time
re-attempting delivery of mail messages which were undeliverable (host down,
unreachable, screwed-up, whatever), so I came up with the idea of having
"fast" and "slow" queues.  

The idea is that once delivery of a message has failed, it is considered to
be in the slow queue - otherwise it is considered to be in the fast queue.
All of the messages stay in the same directory - which queue they belong in
is determined by orderq() each time the queue is run.  

It's easy to determine if delivery of a message has failed: it will have an
"M" line in the qf control file.  A plus-sign ("+") is printed in the
queue-listing to indicate messages which are considered to reside in the
slow queue (like the "X" which indicates that the load-avg prevents delivery
of that message).  The slow queue is run by using the "-Q" option just like
the "-q" option, which now runs the fast queue.

I originally ran into this problem because we use my SAFE_FORWARDING patch
to alias.c which causes messages that will be forwarded to be just queued -
this prevents sendmail losing track of the controlling user and their
uid/gid.  The problem is if we want forwarding to take place quickly, we
have to run the queue failrly often.  Now we can run the fast queue very
often and the slow queue every hour.  

It took about 20-30 lines of additional code in queue.c to impliment this.
If anyone else is interested, I can send them the diffs to queue.c to
impliment slow queues.

Still trying to make sendmail into what we actually need here... :-)

-Andy

--
Andy Poling                              Internet: andy@gollum.hcf.jhu.edu
UNIX Systems Programmer                  Bitnet: ANDY@JHUNIX
Homewood Academic Computing              Voice: (301)338-8096    
Johns Hopkins University                 UUCP: uunet!mimsy!aplcen!jhunix!andy