Skip to Content.
Sympa Menu

devel - Re: [sympa-developpers] Proposal on refactoring about message, spool and pipeline

Subject: Developers of Sympa

List archive

Chronological Thread  
  • From: IKEDA Soji <address@concealed>
  • To: address@concealed
  • Subject: Re: [sympa-developpers] Proposal on refactoring about message, spool and pipeline
  • Date: Mon, 7 Jul 2014 12:38:05 +0900

Guillaume and all,

On Fri, 04 Jul 2014 13:41:36 +0200
Guillaume Rousse <address@concealed> wrote:

> Le 04/07/2014 06:20, IKEDA Soji a écrit :
> > My proposal was a bit illegible. In the figures,
> >
> > [Pipeline::XXX]
> > |
> > |use
> > v
> > [Spool::XXX]
> > | |
> > |use |use
> > v v
> > context object
> > [List/Robot/Site] [Message/Task/etc.]
> >
> > Dependency loop seems not to occur.
> >
> > - Object packages (Message etc.) need not use'ing context package,
> > because latter have already been instantiated by Spool.
> That's precisely this point I'm objecting, in favor of on-demand
> (delayed) context initialisation.

I can't grasp what you are worrying. Would you please explain a bit
more?

> > - Context packages (List etc.) need not use'ing object, spool nor
> > pipeline packages, because functions require them have been moved
> > to Pipeline package.
> >
> > And it seems not possible that Pipeline never access to context
> > of each message: E.g. when a message is related to a list, pipeline
> > must access property (config parameter etc.) of that list.
> That seems the more common usage, sure, but it is always true ? The bulk
> spool, for instance, seems to contains ready-to-send message, that just
> have to be feed to the SMTP engine. But I may be wrong, I really don't
> know this part of the code enough.

I try to explain. See what bulk.pl is currently doing when it
fetches packets using Bulk::next().

It needs various parameters to process messages: VERP, merge
(personalize()), tracking, signing, ... Though rows in
bulkmailer_table (bulkpacket_table) and messages in "bulk" spool
contain several parameters given by Bulk::store() in
Mailer::send_message(), they are not sufficient, especially for
Message::personalize().

That's why List object (list_object) became added into output of
Bulk::next(). Here List object is considered to be a bunch of
various parameters.

After all, parameters Bulk::next() gives ({verp}, {merge},
{tracking}, {dkim}, {message_priority}, ...) are redundant. They
would be retrieved from List object.

This List object above is that I called "context".


However, there may be a point of consideration. Since duration
between processing of incoming pipeline (sympa.pl) and outgoing
pipeline (bulk.pl) can be quite long, when latter started up,
corresponding list could no longer exist physically. In such case
distribution will fail.

The duration can amount to some minutes or more. During this,
the list must not be purged. Although it may be closed.


Regards,

--- Soji

--
株式会社 コンバージョン セキュリティ&OSSソリューション部 池田荘児
〒231-0004 神奈川県横浜市中区元浜町3-21-2 ヘリオス関内ビル7F
e-mail address@concealed TEL 045-640-3550
http://www.conversion.co.jp/



Archive powered by MHonArc 2.6.19+.

Top of Page