You are here: Re: Getting the process ID « PHP « IT news, forums, messages
Re: Getting the process ID

Posted by Joshua Beall on 03/25/05 02:18

"Rasmus Lerdorf" <rasmus@lerdorf.com> wrote in message
news:42435332.70807@lerdorf.com...
> Joshua Beall wrote:
>> I am doing some work where I want to do locking, and prevent scripts from
>> running in parallel. I see that I could use the semaphore mechanism, but
>> I'd like for my code to be portable, and that extension is not enabled in
>> many places.
>
> Sort of defeats the whole concept of a web server, but to answer just your
> process id question, use getmypid()

http://php.net/manual/en/function.getmypid.php

It says "Process IDs are not unique"

I really only need it to be unique at any given instant. I can do
sha1(microtime().getmypid()) to generate a unique ID. But of course it is
only guaranteed to be unique if indeed the process ID is not shared.

The problem I am having is that people are double-submitting certain
transactions. My first attempt to prevent this was to store a flag in the
session record indicating whether or not certain transactions had been
completed, but this turned out to be insufficient at times because users
could try and initiate a second transaction before the first transaction had
finished (and thus the system had not yet flagged the transaction completed
in the session record). They then both completed in parallel, and voila,
duplicate transactions again.

I realized that this sort of problem would always exist unless I had some
sort of semaphore mechanism. Once a user has *started* a transaction, they
need to be prevented from initiating a second transaction until the first
transaction has been completed.

I am open to suggestions on how to do this. What is the best way?

-Josh

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация