Ga naar inhoud

Cron en achtergrondverwerking

PrimoCRM voert al het zware werk op de achtergrond uit: het verzenden van campagnes, sequence-drips en automatiseringsstappen worden verwerkt door geplande workers, nooit tijdens de pagina-aanvraag. Die workers draaien op WordPress-cron, dus een betrouwbare cron is wat ervoor zorgt dat uw e-mails op tijd worden verzonden. Deze pagina legt uit hoe dit werkt en hoe u dit betrouwbaar maakt.

PrimoCRM registreert twee aangepaste schema’s en een kleine set achtergrond-workers:

Worker Wordt uitgevoerd Taak
Campagne-e-mails verzenden Op aanvraag (alleen zolang een campagne e-mails in de wachtrij heeft) Levert een campagne af in gedoseerde batches
Sequence-verwerking Elke minuut Verzendt vervallen sequence-e-mails
Automatiseringsverwerking Elke minuut Laat contacten door automatiseringsstappen gaan
Wachtrij-gezondheidscontrole Elke 5 minuten Herstelt vastgelopen e-mails en triggert vastgelopen campagnes opnieuw

Elke worker claimt een batch aan werk, respecteert een tijdbudget zodat de limieten van uw hosting nooit worden overschreden, en plant zichzelf opnieuw in. De gezondheidscontrole van 5 minuten is een vangnet: als een verzending vastloopt, duwt deze de verzending weer op gang bij de volgende interval.

WordPress wordt geleverd met een pseudo-cron die alleen wordt getriggerd wanneer iemand de website bezoekt. Op een drukke website is dat geen probleem. Op een website met weinig verkeer kunnen er uren voorbijgaan zonder bezoeken, waardoor geplande verzendingen niet worden uitgevoerd totdat de volgende bezoeker arriveert. Het symptoom is een campagne die op “verzenden” blijft staan en langzaam of helemaal niet wordt gedruppeld.

De oplossing is om de door de bezoeker getriggerde pseudo-cron te vervangen door een echte cron die op een vast schema wordt uitgevoerd, idealiter elk minuut.

  • Open PrimoCRM, ga naar Instellingen en zoek naar de systeem- of cron-status, waarin wordt weergegeven of de workers zijn gepland en wanneer ze voor het laatst zijn uitgevoerd.
  • Of installeer een hulpplug-in zoals WP Crontrol en bevestig dat de gebeurtenissen primocrm_process_sequences, primocrm_process_automations en primocrm_queue_health_check aanwezig zijn en worden getriggerd.

Als een campagne vastzit en uw website weinig verkeer ontvangt, is cron bijna altijd de oorzaak.

Twee stappen: schakel de WordPress pseudo-cron uit en voeg vervolgens een echte cron toe die elke minuut wordt uitgevoerd.

Voeg dit toe aan wp-config.php, boven de regel “That’s all, stop editing”:

define( 'DISABLE_WP_CRON', true );

Dit zorgt ervoor dat WordPress cron niet meer triggert bij het laden van pagina’s, zodat uw echte cron de enige trigger is.

Kies wat bij uw hosting past.

WP-CLI (beste optie, als u shell-toegang hebt):

* * * * * cd /path/to/wordpress && wp cron event run --due-now >/dev/null 2>&1

PHP-binary (ook uitstekend bij shell-toegang):

* * * * * php /path/to/wordpress/wp-cron.php >/dev/null 2>&1

cPanel: open Cron-taken, stel het schema in op elke minuut (* * * * *) en gebruik een van de bovenstaande commando’s met het volledige pad naar uw website.

Geen shell-toegang (shared hosting)? Gebruik een gratis externe cronservice zoals cron-job.org om uw cron-URL via HTTP elke minuut aan te roepen:

https://yoursite.com/wp-cron.php?doing_wp_cron

Registreer bij de service, voeg die URL toe, stel het interval in op 1 minuut en sla op. Dit roept de WordPress-cron van buitenaf aan volgens een vast schema.

  • Een campagne blijft vaststaan op “verzenden”. Dit komt bijna altijd door cron. Controleer of een echte cron elke minuut wordt uitgevoerd en of DISABLE_WP_CRON is ingesteld. De gezondheidscontrole van 5 minuten hervat de verzending zodra cron wordt uitgevoerd.
  • Automatiseringen of sequences worden te laat uitgevoerd. Uw cron-interval is te lang, of de pseudo-cron wacht op bezoekers. Schakel over naar een echte cron van 1 minuut.
  • Er wordt helemaal niets verzonden. Controleer los van cron of uw verzamelmethode is geconfigureerd en of een teste-mail aankomt. Cron beheert wanneer het werk wordt uitgevoerd; de mailer beheert of het wordt afgeleverd.
  • CPU-limieten van shared hosting. De workers hebben een tijdbudget en schalen terug onder belasting, waardoor ze veilig zijn op shared hosting. Als uw host toch klaagt, vermindert een iets langer interval (2 tot 5 minuten) de frequentie ten koste van de snelheid.

Zie ook Vereisten voor PHP- en servervoorwaarden, en Verzenden en afleverbaarheid voor het gedeelte over de mailer.