The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Besturingssystemen > HP-UX
.
google unix.com



HP-UX HP-UX (Hewlett Packard Unix) is Hewlett-Packard eigen implementatie van het Unix-besturingssysteem, gebaseerd op System V.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Voeg de output van een query op een variabele te gebruiken in een andere zoekopdracht hazno Programmeren en Shell Scripting 0 03-24-2009 08:52 PM
Mac OS X: Waarom je Mac wellicht niet de slaap-of verblijfplaats in de slaapstand iBot OS X Support RSS 0 03-19-2009 10:50 PM
converting localtime naar unixtime AshishK UNIX for Advanced & Expert Gebruikers 2 10-30-2007 10:22
Perl + localtime () Optimus_P Programmeren en Shell Scripting 3 07-09-2003 05:32 PM
slapen Anna UNIX voor Dummies Questions & Answers 5 07-10-2001 11:52 PM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Waardering: Thread Rating: 1 votes, 4.00 average. Display Modes
  #1 (permalink)  
Old 06-29-2009
nsvora nsvora is offline
Geregistreerde gebruiker
  
 

Join Date: juni 2009
Posten: 2
Sleep & localtime zoekopdracht

Hoi,
Ik werk op HPUX toepassing en ik had een vraag over de slaap en localtime systeem oproep in HPUX.
Hier is de code die we hebben:

const uint32_t WAKE_INTERVAL_SEC (30 * 60);
while (true) (

/ / Find out what time it is
time (& currentTime);

/ / Thread wakker te sluiten met de klok van 30 minuten dat wil zeggen als het op dit moment 9:20 wakker na 10 minuten,
/ / Als het op dit moment 9:05, wakker worden na 25 minuten.
/ / Bereken resterende aantal seconden in een half uur.
sleepTime \u003d WAKE_INTERVAL_SEC - (currentTime WAKE_INTERVAL_SEC%);
while (1) (

slaap (sleepTime);

/ / Do regulier werk
tptr \u003d localtime (& currentTime);

als (12 \u003d\u003d tptr-> tm_hour & & tptr-> tm_min <WAKE_INTERVAL_MIN)
(
/ / Noon werk aan de winkel
)
)

Verwachte Gedrag:
Als bedoeld in de bovenstaande code, verwachten we dat elk half uur, om wat werk worden gedaan, en indien dat tijdstip gebeurt te zijn tussen 12 en 12:30 ben daarom doen wij ook 's middags werken.

Werkelijke Gedrag:
Het merendeel van de tijd het werkt zoals verwacht. Maar een aantal keer, slaap lijkt een paar seconden afrit voor 12:30 uur en dus de logica niet en is de middag het werk. Idealiter zou ik verwachten dat de middag het werk voorwaarde om te mislukken, omdat draad is wakker om 12:30 en dus kan het niet satisify middag het werk staat. (Trace in het syslog blijkt dat regulier werk is begonnen om 12.30 uur, maar het inloggen zelf zou hebben wat tijd gekost en ik vermoed dat de slaap zou kunnen komen, vroeg wakker zijn)

Vraag:
- Kan de slaap wakker worden voor de geplande tijden (andere dan SIGALRM)? Zijn er nog andere omstandigheden waarin de slaap kon wakker te worden vóór de geplande tijd?
- Kan localtime gebruikt ter vergelijking terugkeer verkeerde moment?
- Is het mogelijk dat er enige tijd intern aanpassingen gedaan (kunnen worden voor de interne klok van driften, enz.) die resulteert in slaap ontwaken een seconde eerder dan verwacht of lokale tijd aan een vorm van aanpassing voor een of andere reden?

Alle ingangen in dit verband zijn gewaardeerd.

Thanks & Regards,
NSV
  #2 (permalink)  
Old 06-29-2009
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Locatie: NM
Berichten: 5.748
Waarom niet gebruik maken van cron of op schema uw code? Deze zijn gebouwd om commando's of scripts uit te voeren op precies het juiste moment.

Plus, sleep (1) is niet gegarandeerd exact een seconde slaap.
  #3 (permalink)  
Old 06-30-2009
nsvora nsvora is offline
Geregistreerde gebruiker
  
 

Join Date: juni 2009
Posten: 2
Hallo Jim,
Bedankt voor het antwoord.
Eigenlijk threads kan elk moment wakker te worden op basis van de planner, zodat het logisch was om de tijd de draad zodanig dient te slapen controleren of het in overeenstemming gebracht met intervallen van 30 minuten.

Met groet,
nsvora
  #4 (permalink)  
Old 07-01-2009
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Locatie: NM
Berichten: 5.748
Ik heb geprobeerd om dit duidelijk overbrengen:

Je kan niet garanderen hoe lang slapen is. U hebt toe te voegen sommige Slop (fudge factor) in uw seconde berekening een of andere manier, is het niet van plan uit te werken perfect elke keer - voorbeeld ervan uitgegaan dat u hebt POSIX conforme tijd - dwz., geen schrikkeljaar seconden.:
Code:
calculate duration of sleep:
time_t how_long_to_sleep=1800;
how_long_to_sleep-= time(NULL) % 1800;
sleep(!how_long_to_sleep ? 1800 : how_long_to_sleep);
tijd te testen na ontwaken:
Code:
time_t now=time(NULL);
now=now % 1800;
if( now < 2 && now > 1797)
   // sleep period ended close enough
else
  // sleep period is off by too much
fi
U kunt ook proberen usleep (waarde), wat fijnere granulariteit in ms heeft, maar ook hier is de minimale waarde. Het kan langer zijn. Bijvoorbeeld een hogere prioriteit dan dit een baan wordt uitgevoerd.
Reply

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Uit
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 04:40 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0