Parallel drip campaigns, do not welcome more campaigns when added

Good day,

I would, as an example, have six campaigns with 1 000 unique recipients each.

I would start a parallel drip campaign. I would start the first four campaigns, with a cron job that triggers once a day during the week, it would trigger 200 emails to be sent, 50 from each campaign.

This would work, and every day 200 emails would be sent, 50 from each campaign.

define(‘PROCESSCAMPAIGNS_PARALLEL’,true);
define(‘MAILQUEUE_BATCH_SIZE’, 200);
define(‘MAILQUEUE_BATCH_PERIOD’, 600);
define(‘MAILQUEUE_THROTTLE’, 0.5);
define(‘MAILQUEUE_AUTOTHROTTLE’,0);

Then when I would want to add another two campaigns, and up the batch total to 300 (50 from each of the six campaigns), only 200 emails would be sent from the original campaigns, and the new campaigns would be ignored.

define(‘PROCESSCAMPAIGNS_PARALLEL’,true);
define(‘MAILQUEUE_BATCH_SIZE’, 300);
define(‘MAILQUEUE_BATCH_PERIOD’, 900);
define(‘MAILQUEUE_THROTTLE’, 0.5);
define(‘MAILQUEUE_AUTOTHROTTLE’,0);

It is as if the parallel processing makes the two events, original four and two additional campaigns, to be out of sync.

If I pause the four old events, I can send the new campaigns with a cron job.
When I pause all of them, and then requeue all of them, only the original four campaigns will send their percentage (50 each).

Am I doing something wrong, or how could I possibly sync all the campaigns?

Thank you, to everyone in advance, for your help.
Phplist v3.6.15 PHP 8.1

@Mailman99 You probably need to define MAX_PROCESS_MESSAGE in config.php as the default value is 5. Also, enable VERBOSE to get more detailed output to the event log page which might help understand what is happening.

Dear @duncanc

I really appreciate your reply, and helping me to figure this out.

The MAX_PROCESS_MESSAGE is set to 999, so it cannot be that ( I am sending maximum six campaigns at a time). Verbose was enabled, so I looked at that, and deleted all the old logs, so I knew where to start.

As an experiment, I set four campaigns (of which two are giving me trouble—> not starting to send with the others), to send only 2 emails each of a total batch of 8, and it worked. All four campaigns took part.

When I reverted to my old settings this morning (hoping that the campaigns were now “in sync”), again only two campaigns took part to send their share of emails. Only half the emails were sent, and two campaigns did not participate.

I looked in the log and I can see the system started with good intentions:
9 May 2024 10:55:02 4 campaigns to process
9 May 2024 10:55:02 Processing campaign 20…
9 May 2024 10:55:44 Processing campaign 21…
and the very last processqueue entry is:
9 May 2024 10:56:18 Sending 21 to john@mail.com
After this only processbounces entries

This exact system is working on quite a few other domains, so I am wondering if it does not work here perhaps, because I added some campaigns later?
Could it be that the system needs a second trigger (second cron job a few minutes later?), to send the rest? It worked when I was sending very few emails with this system.

My actual settings for the four campaigns are.

define(‘PROCESSCAMPAIGNS_PARALLEL’, true);
define(‘MAX_PROCESS_MESSAGE’, 999);
define(‘MAILQUEUE_BATCH_SIZE’, 632);
define(‘MAILQUEUE_BATCH_PERIOD’, 316);
define(‘MAILQUEUE_THROTTLE’, 0.2);
define(‘MAILQUEUE_AUTOTHROTTLE’,0);

The Mailqueue_Throttle made no difference when it was 0.5

Any help will be appreciated.
Thank you.

There should be entries in the event log for completing the batch processing, ending with “Finished this run”.
If those are not present then phplist might be failing. Look for a php error log file, sometimes one is created in the admin directory named error_log.