Every message is assigned a priority when it is first instantiated,
consisting of the message size (in bytes) offset by the message class
(which is determined from the Precedence:
header) times the work
class factor and the number of recipients times the work
recipient factor. The priority is used to order the queue. Higher
numbers for the priority mean that the message will be processed later
when running the queue.
The message size is included so that large messages are penalized
relative to small messages. The message class allows users to send
high priority messages by including a recedence:
field in
their message; he value of this field is looked up in the P
lines of the configuration file. Since the number of recipients
affects the amount of load a message presents to the system, this is
also included into the priority.
The recipient and class factors can be set in the configuration file using the RecipientFactor and ClassFactor options respectively. They default to 30000 (for the recipient factor) and 1800 (for the class factor). The initial priority is:
pri = msgsize - (class times bold ClassFactor) + (nrcpt times bold RecipientFactor)(Remember, higher values for this parameter actually mean that the job will be treated with lower priority.)
The priority of a job can also be adjusted each time it is processed (that is, each time an attempt is made to deliver it) using the work time factor, set by the RetryFactor option. This is added to the priority, so it normally decreases the precedence of the job, on the grounds that jobs that have failed many times will tend to fail again in the future. The RetryFactor option defaults to 90000.