Details
-
Type: Improvement
-
Status: Open
-
Priority: Major
-
Resolution: Unresolved
-
Affects Version/s: 4.7.16
-
Fix Version/s: None
-
Component/s: None
-
Labels:
-
Versioning Impact:Minor (add functionality in backwards-compatible manner)
-
Documentation Required?:User and Admin Doc
-
Funding Source:Needs Funding
-
Verified?:No
Description
The required improvement is basically this SE question: http://civicrm.stackexchange.com/questions/8963/how-to-send-a-and-b-messages-at-the-same-time
When the number of recipients of each test group of an A/B mailing is bigger than the mailer job size, then the `process_mailings` cron job will first pick the child jobs of mailing A, and then those of mailing B. This happens because jobs are picked ordered by scheduled date, and all the child jobs have the same schedule date.
As a result, A and B recipients receive/open the email at different times and it is difficult to compare the results unless you wait for a long time so that everyone has received and opened the mailing.
Possible solutions:
- schedule each child job of a given mailing one second later than the previous ones. that way, the query will return in order A1, B1, A2, B2, etc. instead of A1, A2, ... B1, B2, ...
- Add a setting so that A/B mailings and regular mailings can have a different job size, and set the size to 0 for A/B mailings
- change `CRM_Mailing_BAO_MailingJob` so that it can be more easily customized with hooks or an extension.
- other?