Jeff wrote:
>
> Try reading it in the order as presented in the documentation:
> a> If this option is set, queue runs happen in order of message arrival
> instead
> of in an arbitrary order.
> b> For this to happen, a complete list of the entire queue must be set up
> before the deliveries start.
> c> When the queue is all in a single directory (the default), this
> [the IMMEDIATELY preceding item] happens anyway,
>
> So, when the queue is a single directory, Exim creates a complete list
> before
> commencing the deliveries.
Aha! Thank you. Now I understand how I was misreading.
Philip, I'd definitely put that on your docs TODO list. Perhaps change
the "this happens anyway" to "there is already a single list":
If this option is set, queue runs happen in order of message arrival
instead of in an arbitrary order. For this to happen, a complete list of
the entire queue must be set up before the deliveries start. When the
queue is all in a single directory (the default), there is already a
single list, but if split_spool_directory is set there is not – for
delivery in random order, the sub-directories are processed one at a
time (in random order), to avoid setting up one huge list. Thus, setting
queue_run_in_order with split_spool_directory may degrade performance
when the queue is large. In most situations, queue_run_in_order should
not be set.
> It does not magically set the "queue_run_in_order"
> option just because it is only using a single queue.
To be fair, I didn't think it was "magically" setting the option... my
assumption was that without the option forcing a full sort, it would
just grab the messages out of the queue in the order the OS gave them,
and that they would be sorted by virtue of the fact that they went into
the queue directory in arrival order, so that was the order the OS gave
them back, or something like that.
Regardless, now I get it. Thanks for the help, Jeff,
- Marc