[Pymilter] really long processing

Eric S. Johansson esj at harvee.org
Tue May 11 09:10:50 EDT 2004


FYI, I have the receiver side milter working reasonably well.  And I 
will be sending you the code as it as I'm convinced it is not 
embarrassingly ugly.

I am moving to the stand generation side and I have two options as far 
as I can tell, first is to replicate the milter. in some way, shape, or 
form for the stamping filter.  I'm coming to the opinion that it may be 
the preferable form.  The alternative is to switch to the filter or 
stamper inside of the milter.

One of the main challenges is queuing.  When I am generating a stamp, it 
takes approximately 15 to 40 seconds depending on CPU load and stamp 
size.  While there is no problem with generating stamps in parallel, 
there is no advantage and in fact there are some significant 
disadvantages.  Specifically that will delay the delivery of all mail 
significantly instead of delivering messages one at a time. 
Additionally, it's effectively using the process table as a queuing 
structure which is never a good thing.

The filter structure is:

If the other party is known, send the message through
if the other party is unknown, generate a stamp

real complicated.

step generation is handled by calling a command.  This allows me to 
easily remain compatible with the hashcash project without the overhead 
of calling a library that doesn't exist...

How will the milter behave if there are multiple requests for its 
services at the same time as it is waiting for a sub process to finish?

that also raises the question.  Is pymilter single threaded?  It 
shouldn't be a problem because I do use file locking to control access 
to various important files but I'm wondering if that is sufficient in 
the milter environment

that also raises the question.  Is pymilter single threaded?  It 
shouldn't be a problem because I do use file locking to control access 
to various important files but I'm wondering if that is sufficient in 
the milter environment

---eric




<!DSPAM:FC7533C3B5233802357800611>




More information about the Pymilter mailing list