[RESOLVED] Problem with MAX_PROCESSQUEUE_TIME

I’m working out some custom mailqueue, batch processing scripts at the commandline, and I’m trying to understand the key variables. I thought I understood how MAX_PROCESSQUEUE_TIME is supposed to work, but in testing, it didn’t behave the way I expected.

I have a test campaign with 5 addresses in it. I set up as follows:
define(‘MAILQUEUE_BATCH_SIZE’, 20);
define(‘MAILQUEUE_BATCH_PERIOD’, 3600);
define(‘MAILQUEUE_THROTTLE’, 0);
define(‘MAILQUEUE_AUTOTHROTTLE’, 1);
define(‘MAX_PROCESSQUEUE_TIME’, 300);

I set it to stop processing after 5 minutes, which isn’t enough time to get out the emails using the other settings. This worked as expected. 2 emails got out with these settings and then the script terminated at 300 seconds.

The problem is that when I ran the script again, it wouldn’t restart the queue again. I thought that was it’s expected behavior. Below is the output I got when I ran the queue a 2nd time (same for 3rd and 4th also):

phpList version 3.3.1 (c) 2000-2018 phpList Ltd, http://www.phplist.com
phpList - Recently sent : 2
phpList - Started [0.0070990000] (102)
phpList - Sending in batches of 20 messages [0.0005940000] (103)
phpList - This batch will be 18 emails, because in the last 3,600 seconds 2 emails were sent [0.0010350000] (106)
phpList - Script stage: 6 [0.0018740000] (110)
phpList - Finished, Nothing to do [0.0006310000] (111)
phpList - Finished, All done [0.0019370000] (116)

When I go back into the html admin page and look up the test campaign, it shows “inprocess” and that there are still 3 messages to process.

Am I missing something about this? Isn’t the next call to process the queue supposed to pick up where it left off?

OOPs! :flushed:

I installed the timezone plugin during the first run. The campaign was inadvertently embargoed due to the timezone change. I kind of fooled the system because it didn’t show as embargoed until I edited the campaign. I then re-edited the campaign and moved back the embargo time to the past and then the script ran again.

This time when it stopped, I was able to run the script again immediately and it was able to pick up where it left off.

This issue is closed. Sorry for the drama.