Autore: David Saez Data: To: exim-dev Oggetto: Re: [exim-dev] Message id format
Hi
I also though about using subfolders in a configurable way, for example,
one queue folder for local deliveries and another for remote deliveries,
or one queue folder for each local domain, this will avoid having to sort
the queue but maybe will make things more complicated for queue runners
> On 2014-09-03, David Saez Padros <david@???> wrote:
>> Hi
>>
>> I was searching for an easy way to add message queue priorities
>> to Exim and the easiest way would be to change the message id
>> so one of it's characters is the message priority. This way queue
>> sorting could be done just by sorting spool files in a special way
>> without the need to read the header files.
>>
>> One possible candidate could be the first character of the process
>> id as actually at least linux has a default of 32768 for the maximum
>> pid number (which only takes up to 3 characters in base 36 and 2
>> characters in base 64). I think even 5 characters will be enough
>> for a pid number on a system allowing the larger maximum pid number.
>> For systems were a pid number could be larger that this, this
>> behaviour could be disabled. If i'm now wrong, at least Exim itself
>> does not extract this number from the message-id in any place.
>>
>> If this makes sense i could write the changes need for this to
>> work, basically:
>>
>> - option to enable/disable sorting on this character
>> - changes in the queue sort algorithm comparision function
>> - acl option to set the priority and re-generate the message-id
>>
>> the only thing remaining is that i have no clear idea about at which
>> point in time is the message-id generated and the spool file written
>> (after or before acl)
> It's written before the DATA acl, but I think generated at the time of
> the PRE-DATA acl (not sure if before or after)
>
> If you can know the priority at the time of the pre-data ACL perhaps
> you can instead modify the split-spool mechanism to put high priority
> messages into a different directory.
>