Gå til innhold

Unngå integritetsproblemer ved parallelle sidevisninger?


Anbefalte innlegg

Hei

 

I forbindelse med noe prosessering som gjøres ved at php-scriptet starter en ekstern prosess (vanlig bakgrunns-applikasjon på linux) er jeg litt bekymret for integriteten til denne prosesseringen.

 

Det jeg spesielt er bekymret for er hvis prosessen blir startet mens den allerede kjører. Det går selvfølgelig ann å lage en pid-fil hvor man sjekker hvorvidt denne eksisterer før man starter prosesseringen. Det eneste jeg er litt bekymret for da er hvis 2 personer trykker "start" i nettleseren nøyaltig samtidig, og (grunnet scheduling eller lignende) den "første" starter prosessen men ikke rekker å opprette pid-filen før den andre sjekker hvorvidt denne filen eksisterer (og dermed konkluderer med at prosessen ikke kjører for så å starte den).

 

Noen tanker om hvordan jeg kan forsikre meg om at å starte en prosess og opprette en pid-fil for å tracke denne kan skje i en felles operasjon slik at ikke en parallell sidevisning bryter inn imellom disse? Dette er naturlig nok et klassisk problem som ikke nødvendigvis begrenser seg til php (thread safety etc...), men i dette tilfellet lurer jeg litt rundt hvilke spesielle mekanismer i php jeg kan benytte for å sørge for at man kan låse andre sidevisninger fra å fortsette før første sidevisning har fullført...

 

Noen tanker?

 

Oppdatert:

 

I og med at ingen svarer antar jeg at jeg forklarte problemstillingen dårlig. Her er hva jeg vil skal skje ved parallelle sidevisninger:

 

1. php-script på visning #1 starter en ny bakgrunnsprosess (linux)

2. php-script på visning #1 dumper pid i en pidfil

3. php-script visning #2 sjekker om pidfil eksisterer

4. php-script visning #2 starter IKKE bakgrunnsprosessen

 

Her er hva jeg er redd skal skje:

 

1. php-script på visning #1 starter en ny bakgrunnsprosess

2. php-script på visning #2 starter en ny bakgrunnsprosess ettersom visning #1 enda ikke har rukket å lage pidfil

3. php-script på visning #1 lager pidfil

4. php-script på visning #2 lager pidfil

 

 

Hensikten er å lage et lite "kontrollpanel" for start/stop av batch-prosessering.

Endret av invictus
Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...