cURL via cronjobs zonder timeout.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full Stack Developer

Ben jij een kei van een full-stack developer? Heb je ambitie om te groeien en jezelf te ontwikkelen binnen een ambitieus bedrijf? Gaat jouw hart sneller kloppen van transpilers of frameworks zoals Angular, Vue of React? Dan ben jij de persoon die wij zoeken! Voor onze opdrachtgever zijn wij op zoek naar een full-stack developer om onderdeel te zijn van een team dat bestaat uit gedreven developers. Ieders met hun eigen specialiteiten en kennis van de projecten en behoeften vanuit de product owners. We zoeken iemand die met zijn/haar huidige competenties en domeinen dit team wil begeleiden, stimuleren en tevens

Bekijk vacature »

Software developer

Functie Momenteel zijn ze op zoek naar een Software developer die, veelal fullstack, mee gaat werken aan de ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP),

Bekijk vacature »

Medior PHP Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte website die in eigen beheer zijn. In onze vestiging in Nederweert zitten onze development afdelingen en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé PHP/Back-end developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het bedenken van nieuwe functionaliteiten Het verbeteren van het

Bekijk vacature »

Senior Front end developer Automotive Angular

Functie Als Senior Front end developer kom je te werken in een team van 11 developers. 9 van de 11 focussen zich op back end, welke is geschreven in Java, en 2 op de front end waarbij er gebruik wordt gemaakt van Typescript en Angular. De focus in deze rol ligt op 2 aspecten; doorontwikkeling van de eigen tooling en gebruik van de tooling t.b.v. klantprojecten. Momenteel zijn ze in de afrondende fase van een project waarbij ze het gehele verkoopproces van nieuwe auto’s anders ingeregeld hebben voor een grote dealer in Nederland. Waarbij Auto’s normaliter pas verkocht werden in

Bekijk vacature »

Medior/senior front end developer React Sportsoftw

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van onze stack; Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor

Bekijk vacature »

Developer (One Data)

Do you have experience with managing IT Teams in a service delivery organization? Are you keen to bring the team and our platform to a higher level? Then Nutreco has a very interesting role for you! As a One Data developer you are responsible for the management, running and functional use of our integration landscape and processes within Nutreco. Nutreco is using at this time BizTalk 2016, and Apigee for its API management, to be replaced by Azure Integration Services as of 2023. You will be part of a virtual teams of 11 people (own and outsourced) working in an

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan

Bekijk vacature »

Front-end Angular developer

Functie In jouw rol als Front-End developer werk je samen met de backend developers om middels tweewekelijkse sprints het platform naar een hoger niveau te tillen. Hiernaast heb je affiniteit met data en werk je graag samen met het team om de gegevensintegriteit en -beveiliging te waarborgen, om ervoor te zorgen dat de gebruiker wereldwijd de beste SaaS-services heeft. Deze organisatie heeft meer dan 100 mensen in dienst, waarvan er 45 in Nederland werken. Het ontwikkelteam bestaat uit 10 mensen en is verdeeld in 2 scrumteams. Het eerste team bestaat uit Java en Scala ontwikkelaars. Het tweede team, waar jij

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

Software Developer PHP JavaScript Python HBO SQL

Samengevat: Wij zijn een softwarebedrijf voor Autodealers. Ben jij een Medior of Senior Software Developer? Heb je ervaring met PHP, JavaScript of Python? Vaste baan: Java.Developer Software HBO €3.000 - €5.200 Bij ons op de werkvloer is er een positieve en informele sfeer. Naast een goede begeleiding en een enthousiaste klantenkring biedt deze werkgever een prettige omgeving met zeer afwisselende werkzaamheden. Houd jij van aanpakken en denk je dat je deze uitdaging aankunt? Dan zoeken wij jou! Zij werken voor grote klanten. Zij doen omvangrijke projecten die we bij deze werkgever op kantoor realiseren (geen detachering). Zij werken met state-of-the-art

Bekijk vacature »

.NET Developer

Functie omschrijving Net afgestudeerd en op zoek naar een leuke baan als developer? Zoek niet verder! Ik heb een functie beschikbaar als back-end developer, bij een leuk familiebedrijf. Je gaat werken met de Microsoft stack en de technieken C# en .NET. Verder maak je gebruik van MVC en Entity framework. SQL kent ook geen geheimen voor jou. Jouw verantwoordelijkheden: Nieuwe maatwerk software bouwen; API koppelingen bouwen; Applicaties en software optimaliseren; Back-end programmeren. Een erg uitdagende functie, met veel vrijheid. Je kan meerdere dagen thuis werken en als je op kantoor werkt wordt de lunch verzorgd. Heb je interesse, reageer dan

Bekijk vacature »
- Ariën  -
Beheerder

- Ariën -

05/06/2019 14:34:04
Quote Anchor link
Een simpele vraag, waarvan ik even niet weet hoe ik dit uit moet zoeken, en misschien iemand wel weet hoe dit technisch in elkaar steekt:

Wat gebeurt er met de processen als je een veel gedraaide cronjob draait (elke vijf minuten, direct naar php, geen wget) met een PHP-script die een curl-request doet, die vervolgens blijft wachten op een request. Hoelang blijven deze instances bestaan? En wat als je de webserver of PHP-FPM een reboot geeft? Gaan die instances dan ook allemaal gekilld worden, of moet je dan je hele server even een reboot geven?

Een tip voor een ieder die meeleest: Gebruik een timeout in je curl:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10); //timeout in seconden, 0 is oneindig
?>
Gewijzigd op 05/06/2019 14:48:56 door - Ariën -
 
PHP hulp

PHP hulp

21/09/2024 02:57:32
 
Thomas van den Heuvel

Thomas van den Heuvel

05/06/2019 16:13:29
Quote Anchor link
Waarom via cURL, en niet een crontab?
En als je niets doet met een response, waarom zou je hier dan op wachten? Volgens mij zijn er opties om enkel het request te doen, zonder op een response te wachten.

Dan is het zaak dat je ook een mechanisme hebt dat detecteert wanneer een cron (niet) is uitgevoerd, anders heb je wellicht niet in de gaten dat er dingen misgaan. Maar dat is een apart probleem, met een aparte oplossing.

Ik neem aan dat je een cURL-request naar een externe bron doet? Zijn er geen andere/betere manieren om dit te doen?

En wat ben je precies aan het doen? Roep je een webservice aan? Of ben je aan het scrapen?
 
- Ariën  -
Beheerder

- Ariën -

05/06/2019 16:23:28
Quote Anchor link
Een crontab die via een php-script via php zelf een curl request naar een webservice doet, omdat er via PHP er nog wat scripts moeten plaatsvinden (data in database plaatsen etc)).

Maar wat gebeurt er met die instances dan die eindeloos doordraaien als de webservice niet reageert? Gaan die een keer toch gekilld worden, of blijven die draaien totdat de server gerestart wordt?
 
Ivo P

Ivo P

05/06/2019 17:02:24
Quote Anchor link
PHP heeft in cli mode geen timeout.

een script als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php  while(true) {} ?>
zal dan ook eindeloos blijven door draaien.

PHP zou dan ook op een curl-request eindeloos kunnen blijven wachten als die niet zelf een (fatal) error opwekt na verloop van tijd.

Dus ja: als dat niet de bedoeling is, zou een timeout op je curl request handig zijn.

Zeker bij de connectie zou je een timeout moeten instellen. Hoe lang je vervolgens wilt wachten op de output van de remote server als je je request gedropt hebt, is een andere timeout.
 
- Ariën  -
Beheerder

- Ariën -

05/06/2019 17:07:01
Quote Anchor link
@Ivo P: En die instances dan? Blijven die openstaan? Of gaan die ooit nog eens weg? Of pas als je die handmatig killt of de server zelfs herstart?
 
Ivo P

Ivo P

05/06/2019 17:14:40
Quote Anchor link
Zo lang je script draait, blijft het proces bestaan.

dus als

aap.php =
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php while(true) {} ?>


dan zal
$ php aap.php &

je script starten en dat draait door. (in dit geval zal hij stoppen als de user uitlogt, maar in geval van een cronjob, is dat niet van toepassing).

Je kunt dan met bijvoorbeeld

$ pkill -f aap.php

je script stoppen. Of eerst uitzoeken welke Process ID je moet hebben als er meerdere instanties van dat script draaien. En dan kun je "kill" gebruiken.

Je script stopt, los van onder dwang van "kill"
* als de uitvoering klaar is (einde script)
* er exit() of die() wordt aangeroepen
* er een fatale fout optreedt.

En aangezien er geen timeout van toepassing is, komt een fatale fout niet voort uit een teveel gebruik aan tijd. En ook wbt Memory zou je je bewust moeten zijn van de risico's. Ik vraag me af wat daar de limieten zijn.
 
- Ariën  -
Beheerder

- Ariën -

05/06/2019 17:21:47
Quote Anchor link
Ik heb wel begrepen dat de limieten met curl op 5 minuten liggen. Ik zal eens een kijken wat er aan PHP processen draaien.
 
Ivo P

Ivo P

05/06/2019 17:24:58
Quote Anchor link
ps -Af | grep php
 
- Ariën  -
Beheerder

- Ariën -

05/06/2019 17:40:43
Quote Anchor link
ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n -r

Dit vond ik wat interressanter, om meteen het geheugenverbuik te zien. Grep op PHP had ook gekund, maar ik toch liever even wat meer zien... ;-)
 
Thomas van den Heuvel

Thomas van den Heuvel

05/06/2019 19:20:52
Quote Anchor link
Weet niet of het verstandig is dat je timeouts zodanig zijn (10 mins?) dat deze de frequentie van het uitvoeren van het script (elke 5 mins?) overstijgen. Kans bestaat dan dat de uitvoering van scripts gaat overlappen.

Als je dan ook nog database-bewerkingen uitvoert die niet in een transactie staan dan wordt dat al snel een grote puinhoop. Waarschijnlijk wil je dat te allen tijde maximaal één zo'n script actief is. In dat geval wil je een soort van semafoor inbouwen die dit garandeert.

Ook zou je natuurlijk kunnen kijken naar efficiëntie, een ruimere periode voor de uitvoering van een "run", en eventueel meer sensoren (of op zijn minst een log) die de uitvoer in de gaten houden.
 
- Ariën  -
Beheerder

- Ariën -

05/06/2019 20:09:36
Quote Anchor link
Dat lijkt mij een goed idee. Ik al er eens naar kijken.
Maar nog belangrijker is: Waarom krijg ik een time-out. Blijkbaar blokkeert de webservice mij?
 
Thomas van den Heuvel

Thomas van den Heuvel

05/06/2019 22:37:52
Quote Anchor link
> Waarom krijg ik een time-out. Blijkbaar blokkeert de webservice mij?
Log je een response? Die kan wellicht meer info geven.
Of wellicht strandt het schip eerder, kun je de service wel bereiken?
Gewijzigd op 05/06/2019 22:38:55 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

05/06/2019 22:50:51
Quote Anchor link
Nee, het lijkt erop dat ik die niet kan bereiken, maar thuis op mijn pc wel.
 
- Ariën  -
Beheerder

- Ariën -

08/06/2019 16:00:41
Quote Anchor link
Ik heb inmiddels contact opgenomen met de partij, en in de tussentijd tot ik reactie heb, gebruik ik een proxy via een kennis.

En uiteraard nu in de curl-request een timeout meegegeven. Later ga ik even een semafoor inbouwen die dit beter logt.
 



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.