View Issue Details

IDProjectCategoryView StatusLast Update
0017608phplist applicationMessage Managementpublic06-07-15 18:04
Reporterduncanc 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.0.12 
Target Version3.0.XFixed in Version3.2.0 
Summary0017608: Automatic requeuing does not call plugins
DescriptionWhen a message is requeued manually, on the campaigns page, the processing includes calling the messageReQueued() method on each plugin, see file messages.php line 168:

  if ($suc6) {
    $action_result .= "... ".$GLOBALS['I18N']->get("Done");
    foreach ($GLOBALS['plugins'] as $pluginname => $plugin) {
      $plugin->messageReQueued($resend);
    }


But when a campaign is requeued periodically with the requeueinterval value, the only processing is to update the message table. There is no plugin processing nor the other processng of the messagedata table. see file actions/processqueue.php line 501.

## check for messages that need requeuing
$req = Sql_Query(sprintf('select id,requeueinterval,embargo < now() as inthepast from %s where requeueinterval > 0 and requeueuntil > now() and status = "sent"',$tables['message']));
while ($msg = Sql_Fetch_Assoc($req)) {
  if ($msg['inthepast']) {
    Sql_query(sprintf('update %s set status = "submitted",sendstart = null, embargo = date_add(now(),interval %d minute) where id = %d',$GLOBALS['tables']['message'],$msg['requeueinterval'],$msg['id']));
  } else {
    Sql_query(sprintf('update %s set status = "submitted",sendstart = null, embargo = date_add(embargo,interval %d minute) where id = %d',$GLOBALS['tables']['message'],$msg['requeueinterval'],$msg['id']));
  }
  ## @@@ need to update message data as well
}
TagsNo tags attached.

Activities

There are no notes attached to this issue.