[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ZMailer scheduler directories
I have been hammering the code around recently, and when
lookingf for solutions on the problems of scheduler looseing
its senses occasionally, when it starts childs.
My solution has been rather drastic:
$POSTOFFICE/scheduler/ directory is removed
Now my 2.99.15 router links/renames the scheduler file only
into $POSTOFFICE/transport/, and the scheduler runs on that
directory feeding its childs only with file names in there.
This should improve performance (at least a bit) because it
isn't all the time doing disk-synchronous directory operations
by creating directories (channels/hosts), and linking files in
them. Also now it won't make a mistake of unlinking
file before a work-file in there is handled.. :-)
All my tests of multi-recipient messages have been successfull
in a sense that the scheduler didn't delete the job-file before
all recipients were handled, however the "Mail -v recipients"
processing broke a bit, because now (for other reasons) the
channels may append more reports to the log-file AFTER the scheduler
puts its "scheduler done processing" in it -> verbose tracer
hangs waiting additional text...
Another technical detail is that the scheduler looks up the new
work-files by reading thru the directory every now and then
(ever 10-20 seconds), and checking from internal splay-tree,
if the file is not already in works, and therefore is eligible
for "new queue". The lookup results are pushed into a "new queue"
which is sorted time-wise, and the messages are scheduled from
the queue one at the time in the main loop.
(Oldest first, of course)
Apparently the startup latency problem was solved with this, however
other parts of the scheduler system are still a bit too sluggish for
I run it on my Linux workstation, Linux laptop (of course :-) ),
DEC OSF/1v3.2A, and SUN Solaris 2.4.
I am still unhappy of several things, and therefore unwilling to
to release it quite yet., Patience...
/Matti Aarnio <email@example.com>