Automatische email na 2 dagen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Ben Pastoor

Ben Pastoor

07/07/2020 20:11:14
Quote Anchor link
Goede avond,


Als een klant een plaatst bijvoorbeeld vandaag dan wil ik een email versturen 2 dagen later.
Dit wil ik graag automatiseren.

Welke manier zou ik het beste kunnen gebruiken? Ik lees iets over cronjobs?
Is dit de enigste manier en de meest gebruikte manier?
 
PHP hulp

PHP hulp

24/11/2024 14:13:26
 
- Ariën  -
Beheerder

- Ariën -

07/07/2020 20:53:04
Quote Anchor link
Ja, vooral omdat je een valide reden hebt om iets getimed uit te voeren.
Gewijzigd op 07/07/2020 20:56:43 door - Ariën -
 
Ben Pastoor

Ben Pastoor

07/07/2020 21:09:48
Quote Anchor link
Kan ik zoeen cron job activeren met een PHP script of moet ik dan mijn hosting provider opdracht geven om een cronjob aan te maken?
 
Ramon van Dongen

Ramon van Dongen

07/07/2020 21:51:51
Quote Anchor link
Hangt een beetje af van welke mogelijkheden je hostingprovider biedt of je het zelf kunt activeren.

Om er veel controle over te hebben en logs goed terug te kunnen zien, gebruik ik www.setcronjob.com
Kost paar dollar per jaar maar dan heb je wel veel mogelijkheden.
 
Thomas van den Heuvel

Thomas van den Heuvel

07/07/2020 22:37:07
Quote Anchor link
Ben Pastoor op 07/07/2020 20:11:14:
Welke manier zou ik het beste kunnen gebruiken? Ik lees iets over cronjobs?

Dit is in ieder geval waarschijnlijk de meest betrouwbare manier. Een cronjob stelt je in staat op gezette tijden een (PHP-)script uit te voeren. En dit script zou op zijn beurt een soort van taakverdeler kunnen zijn voor het uitvoeren van meerdere taken. Dan krijg je een soort van "triggersysteem". Het script wordt dan bijvoorbeeld elke 5 minuten uitgevoerd, en dit systeem controleert dan vervolgens of er een taak in dat tijdsslot uitgevoerd (had) moet(en) worden. Maar dat is dan meteen een heel erg uitgebreide variant, je kunt ook een enkele cronjob aanmaken voor een specifieke taak, zoals bijvoorbeeld het versturen van bepaalde mailtjes.

Ben Pastoor op 07/07/2020 20:11:14:
Is dit de enigste manier en de meest gebruikte manier?

Er bestaat volgens mij zoiets als een "Poor Man's Cron". Dit is een mechanisme waarbij je tijdens het uitvoeren van iets anders (bijvoorbeeld het serveren van een webpagina) je het cron-script een schop geeft. Dit heeft wel een aantal (potentiële) nadelen:
- indien dit "iets anders" niet plaatsvindt (er wordt bijvoorbeeld nooit een pagina opgevraagd in een bepaald tijdsbestek), dan krijgt het cron-script ook geen schop, en wordt het bijbehorende werk -zolang er geen webpagina wordt opgevraagd- dus ook niet uitgevoerd; er kan dan dus mogelijk een vertraging zitten in de uitvoering van deze taken, dit is uiteraard niet erg ideaal voor dingen die een zekere urgentie hebben / tijdsgevoelig zijn
- dit kan de andere processen waarop de Poor Man's Cron meelift trager maken of in ieder geval beslag leggen op extra resources (geheugen/CPU); als dit wat zwaardere taken zijn die enige tijd kosten, dan moet je dat natuurlijk niet aan het serveren van je pagina's ophangen want dan wordt je website mogelijk baggertraag

Indien jouw webhost deze voorziening niet heeft dan kan de suggestie van @Ramon uitkomst bieden, maar wel met de volgende kanttekening (of ik moet verkeerd begrijpen wat die functionaliteit doet): het lijkt erop dat die dienst gewoon "over het internet" gaat, oftewel de cron-taak is een web-URL die je rechtstreeks kunt aanroepen. Het kan gebeuren dat de taak die je op gezette tijden wilt uitvoeren zich niet echt voor deze constructie leent of je zult extra voorzieningen moeten treffen om ervoor te zorgen dat een herhaalde aanroep geen ongewenst effect heeft.

Een voorbeeld: stel dat je onder je publieke webdirectory op deze manier een cron hebt ingeregeld voor het versturen van een nieuwsbrief: /crons/newsletter.php. En stel nu dat het normaal de bedoeling is dat deze eens per week of maand wordt aangeroepen, maar dat je verder geen voorzieningen hebt getroffen voor het detecteren van het reeds verzonden zijn van de nieuwsbrief die klaar staat om verstuurd te worden. Ik hoef je waarschijnlijk niet uit te leggen wat er dan kan gebeuren als een kwaadwillend persoon deze URL kent ;-). Of misschien zorgt newsletter.php ervoor dat de nieuwsbrief in batches wordt verstuurd om zo de last over tijd te verdelen. Als dit script dan in korte tijd vaak wordt aangeroepen dan kan dit een webserver mogelijk onderuit halen.

Het is gewoon makkelijker wanneer cron-scripts buiten de webdirectory staan en (alleen) aangeroepen (kunnen) worden via een cronjob. Op die manier kan de cron niet op een andere manier ge/misbruikt worden. Dit hangt natuurlijk van de aard van de taak af, maar deze opzet maakt waarschijnlijk de programmering van zo'n taak ook minder complex. Het vermijden van (onnodige) complexiteit in je applicatie is wat mij betreft iets om altijd naar te streven.
Gewijzigd op 07/07/2020 22:39:52 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

07/07/2020 22:37:57
Quote Anchor link
Als je hosting het laten uitvoeren van cronjobs ondersteunt, dan hebben ze er vaak een speciaal configuratie paneel voor.

In een cronjob-commando vul je op een gestructureerde wijze het moment in dat deze moet worden uitgevoerd, en daarna geef je het pad aan naar het juiste script.
 
Ramon van Dongen

Ramon van Dongen

09/07/2020 10:00:56
Quote Anchor link
Thomas van den Heuvel op 07/07/2020 22:37:07:
Indien jouw webhost deze voorziening niet heeft dan kan de suggestie van @Ramon uitkomst bieden, maar wel met de volgende kanttekening (of ik moet verkeerd begrijpen wat die functionaliteit doet): het lijkt erop dat die dienst gewoon "over het internet" gaat, oftewel de cron-taak is een web-URL die je rechtstreeks kunt aanroepen. Het kan gebeuren dat de taak die je op gezette tijden wilt uitvoeren zich niet echt voor deze constructie leent of je zult extra voorzieningen moeten treffen om ervoor te zorgen dat een herhaalde aanroep geen ongewenst effect heeft.


Klopt, gaat gewoon over het internet. Dus inderdaad zelf ongewenste effecten van dubbel aanroepen etc wel goed afdekken.
 
Rob Doemaarwat

Rob Doemaarwat

09/07/2020 13:02:20
Quote Anchor link
Nadeel van "over het internet" (gewoon een GET dus) is dat je ook standaard aan een timeout van (meestal) 30sec vast zit, terwijl die bij een normale cron aanroep (eigenlijk gewoon CLI) "oneindig" is. Uiteraard kun je wel met set_time_limit() aan de slag, maar dan nog kunnen er allerlei andere "schakels" zijn die de handdoek in de ring gooien (je proces loopt misschien wel door, maar Apache+nginx geven alvast een "timeout upstream server"). Dan weet je dus nooit 100% zeker of je job nou wel of niet succesvol is afgerond.
 
Jan R

Jan R

10/07/2020 07:42:14
Quote Anchor link
Ik werk met one.com deze hebben GEEN cronjobs :( Echter heb ik ook een nas en die kan je wel configureren om taken uit te voeren. misschien heb je ook een nas. zoek dan eens iets als taakplanner.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.