cURL via cronjobs zonder timeout.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back-end programmeur

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een uitdagende werkgever in omgeving Waalwijk zijn wij op zoek naar een enthousiaste softwareontwikkelaar met kennis of ervaring met C# en SQL. In een uitdagende rol als C#.NET Developer werk je samen met een enthousiast en informeel team aan het bouwen van maatwerk software voor variërende klanten. Verder ziet jouw takenpakket er als volgt uit: Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je houdt je bezig met het ontwikkelen

Bekijk vacature »

Senior front end developer Digital Agency Amsterda

Functie Wij werken in multidisciplinaire teams aan verschillende projecten, echter blijf je niet gebonden aan 1 team. Dit houdt in dat wij verschillende specialisten in dienst hebben en deze door middel van een roulatiesysteem in multidisciplinaire teams laten werken. Het team bestaat vaak uit Frontend developer(s), Backend Developer(s), Designer(s), Tester(s) en Mobile Developer(s). Deze teams worden afgewisseld waardoor jij de mogelijkheid krijgt om met iedereen een keer samen te werken. Als Frontend Developer ben jij ónze Specialist op dit gebied. Jij werkt mee aan verschillende projecten voor verschillende klanten. Denk bijvoorbeeld aan klanten, zoals’; BAM, IDFA en Ultimaker. Hierbij zorg

Bekijk vacature »

In-house .NET software developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house development functie? Maak jij graag hét verschil m.b.t. interne automatisering? Haal jij energie uit het automatiseren van processen voor je eigen collega's? Dan hebben wij de perfecte vacature voor je! Voor een gezellig Brabants familiebedrijf, zijn wij op zoek naar een .NET software developer. Je gaat in deze zelfstandige functie werken aan de ontwikkeling van eigen applicaties & en het koppelen van deze applicaties aan de ingekocht software. Jouw werkzaamheden zien er als volgt uit: Het management team signaleert behoeftes vanuit de business. Vervolgens worden deze behoeftes uitgewerkt en geprioriteerd.

Bekijk vacature »

Team Lead/ Lead developer gezocht (Hands-on, PHP,

Functie Als Team Lead ben je de leider van één van de ontwikkelteams binnen de organisatie. Je leidt als lead developer een goed draaiend team dat werkt aan complexe en duurzame applicaties en API’s. Vanuit je kennis en ervaring ben je in staat het grote plaatje te blijven overzien, en kritisch mee te denken over bijvoorbeeld de architectuur, maar ook de algehele aanpak binnen het project. Je laat je team niet alleen technisch goed functioneren maar ben ook betrokken bij het menselijke aspect. Zo weet jij je collega’s te motiveren en begeleiden in hun dagelijkse werk. Buiten het team ben

Bekijk vacature »

Front-end developer (medior/senior)

Functie Het team bestaat uit een architect, fullstack developers, app developers, de product owner en projectmanager. Eenieder draagt vanuit zijn discipline bij aan een complete oplossing voor de klant. Uiteraard zul je hierin nauw samenwerken met je collega’s. Jij wordt verantwoordelijk voor de front-end implementatie en fungeert als lead op dit gebied binnen het team. Je kunt helder formuleren, ideeën uitdragen en overbrengen aan je collega’s. Qua technische stack is het vooral van belang dat je ervaren bent met Angular, HTML5, CSS en TypeScript. Verder is ervaring in NgRx, Bootstrap, BEM en Cypress een pré, evenals affiniteit met UX/UI Design!

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden je HBO ICT Informatica diploma in ontvangst mogen nemen? Of heb je een aantal jaar ervaring als Software Developer en ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een gewaardeerde werkgever in de regio van Goirle zijn wij op zoek naar een junior/medior Back-end Developer met affiniteit met MS Acess. Samen met een vooruitstrevend team ben je verantwoordelijk voor het ontwikkelen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL en affiniteit met MS Acess. Je bent klantvriendelijk en flexibel ingesteld en vindt het leuk om klanten te

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Als developer bouw je in DevOps teams aan enterprise applicaties, nieuwe IOT, Chatbots of AI oplossingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren in dit vakgebied. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij vorig jaar Microsoft Partner of the year geworden.

Bekijk vacature »

Ontwikkelaar Identity & Access Management

Dit ga je doen Als Identity & Access Management Ontwikkelaar zorg jij er voor dat studenten, medewerkers en docenten de juiste benodigdheden op het juiste moment kunnen gebruiken; Het juist opslaan van onderzoeksdata en het openbaar beschikbaar stellen van publicaties (Open Access); Studenten, collega's en wetenschappers ondersteunen; Agile en Scrum werken; Technisch Applicatiebeheer; Ontwikkelen in One Identity Manager en VB.NET. Hier ga je werken Als Ontwikkelaar kom je terecht in een hecht team die zich richt op wetenschappelijke informatie en ICT. Jij bent degene die er voor zorgt dat alle informatie, uit diverse onderzoeken, bij de juiste personen terecht komt.

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar ontbreekt er aan passie en motivatie niks. Jij bent communicatief sterk en pakt iedere uitdaging dan ook met beide handen aan. Op projectbasis ga jij met je team of met enkele andere ontwikkelaars intern aan de slag bij diverse partners. Op basis van het project ga jij aan de slag en zijn de werkzaamheden en technieken erg divers. Jouw werkgever stelt jouw ontwikkeling hierin voorop, zo krijg je een vast vertrouwenspersoon die één keer in de maand op locatie van jouw project zal kijken hoe het gaat en of er eventuele aandachtspunten zijn. Daarnaast krijg

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 »

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 »

Front-end developer

Functie Als front-end developer kom je te werken in een team van 30 gedetacheerde, en het team is momenteel flink aan het groeien. Je hebt ervaring met het bouwen van complexe bedrijfsapplicaties waar je gebruik maakt van de nieuwste technologieën waarmee jij elke klant omver blaast. Het gaat om uitdagende projecten met een gemiddelde doorlooptijd van 2 jaar. Hierdoor heb jij echt de volledige focus op een project en kun je flinke impact maken. Het team zit boordevol met ervaren developers die samen dezelfde ambitie delen. Aan de hand van opleidingen en trainingen kun je certificaten halen in jouw expertise

Bekijk vacature »

.NET developer

Functie Als .NET ontwikkelaar start jij in een multidisciplinair team met 7 ontwikkelaars. Dit team is verdeeld onder Front-end ontwikkelaars en backend developers. De backend developers werken voornamelijk aan desktop applicaties in combinatie met backend systemen. Hier ga jij dus ook mee aan de slag! Hierbij wordt voornamelijk gebruik gemaakt van C# .NET, WPF, UWP, XAML en MVVM. WPF, UWP, .NET Core, Azure Devops en Entity Framework. WPF en UWP worden dan ook voornamelijk gebruikt voor de user interface van de desktop applicatie. Het development team is dan ook erg gedreven m.b.t. het ontwikkelen van vooruitstrevende en innovatieve horeca automatiseringsoplossingen.

Bekijk vacature »

IoT Developer

Ben jij innovatief, heb jij passie voor energie en ben je data gedreven? Bouw dan mee aan IoT binnen Bredenoord. Samen met een gedreven team werk jij aan mooie technische en innovatieve oplossingen. Wat houdt de functie van IoT Developer in? Binnen Bredenoord zijn wij momenteel volop in ontwikkeling met ons IoT platform. Als uitbreiding van ons team zijn wij op zoek naar een IoT Developer. Je zal in projectverband meehelpen met het implementeren van IoT vraagstukken binnen Bredenoord. Als IoT Developer op onze R&D-afdeling word je verantwoordelijk voor het verder inrichten en beheren van ons nieuwe IoT platform. Dat

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 »
- 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

24/04/2024 13:42:04
 
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.