Queue get timeout parameter question

Thomas Krüger see_signature at nospam.nowire.org
Tue Apr 10 03:38:13 EDT 2007


Godzilla schrieb:
> I have been using the queue module for a multithreaded environment and
> things seem to work well... until we had a requirement for the
> application to be able to time sync to the server. With the time sync,
> it actually disorientated the timeout in the queue's get() method...
> e.g.
> 
> get(item, 2.0)
> 
> After the time sync, say 15 seconds backward, the thread is sitting on
> that get() method for a total of 17 seconds. We can only sync the
> device once per day and the time can drift up to 15 seconds per day!!
> I had tried to get around this problem by having a sleep(2) (sleep is
> not local system time dependant) just before the get(), but that will
> slow down the application too much.
> 
> Anyone knows a solution to this problem or an alternative method?

I was fixing a serious time drift problem on Linux lately. If your
server runs on Linux I can give you some hints:

- set the system clock
- delete /etc/adjtime and resync system time and hardware time
  "hwclock --systohc"
- on some distributions you may have to reboot
- give it some time to see if it is still drifting
- if only the system clocks drifts (see output of "hwclock; date")
  you may have a timer related kernel problem. This may help:
  * deactivate ACPI via kernel boot parameter
  * change timer frequency
  * try different setting for all timer related stuff like
    CONFIG_HPET_TIMER or CONFIG_X86_PM_TIMER

Thomas

-- 
sinature: http://nospam.nowire.org/signature_usenet.png



More information about the Python-list mailing list