FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » Best strategy for creating an application scoped variable?
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: Best strategy for creating an application scoped variable? [message #172051 is a reply to message #172048] Fri, 28 January 2011 15:17 Go to previous messageGo to previous message
laredotornado@zipmail is currently offline  laredotornado@zipmail
Messages: 5
Registered: January 2011
Karma:
Junior Member
On Jan 28, 8:00 am, Jerry Stuckle <jstuck...@attglobal.net> wrote:
> On 1/28/2011 2:30 AM, Denis McMahon wrote:
>
>
>
>> On 28/01/11 03:24, Jerry Stuckle wrote:
>>> On 1/27/2011 9:40 PM, Peter H. Coffin wrote:
>>>> On Thu, 27 Jan 2011 16:08:01 -0800 (PST), laredotorn...@zipmail.com
>>>> wrote:
>
>>>> > I'm using PHP 5.2.  I would like to populate a hash from a database
>>>> > query.  The hash should be available to all users of the application
>>>> > and would only be updated very occasionally.  The database query is
>>>> > expensive, and I would prefer only to run it once, whenever PHP was
>>>> > restarted, or on the rare occasion when the database data changed.
>>>> > What is the best strategy for implementing this hash?
>
>>>> I'm confused. What "hash" do you want to "populate"? Do you just want to
>>>> stick a pregenerated value in a table? Maybe you need an insert/update
>>>> trigger?
>
>>> That was my thought - create a table in the database with the required
>>> information and update it based on a trigger.  Much easier than trying
>>> to use shared memory or the like.
>
>>> I guess an alternative would be to create a PHP file from the generated
>>> data and include it where necessary.  But there's always the problem of
>>> updating it when the web server restarts (PHP doesn't "restart" - it
>>> starts every time a request is made for a PHP file - and only then).
>
>> I guess the included file could be created with a cron job, say every 6
>> hours or so?
>
>> To try and minimise file access conflicts, it might be best to create it
>> with a temporary name and then using a shell "mv temp_file actual_file"
>> at the end of the cron job.
>
>> However, I'd have thought that copying the query results into a new
>> table would be the best answer, I guess it would be a static snapshot of
>> the expensive query, and then access it as "select * from<table>",
>> maybe running a cron process to generate it every 6 / 12 / 24 / whatever
>> hours.
>
>> Or create an extra table with a time field that you update when you run
>> the query, and check this field every time you access the data, if the
>> data is older than some defined limit, call the expensive query to
>> update the snapshot table.
>
>> Rgds
>
>> Denis McMahon
>
> I wouldn't run a cron job.  I would use the database tools to run the
> query as necessary.
>
> And there are several ways to protect the file, if you do write to a
> file.  For instance, lock the file before writing and before including.
>   But I think creating a table with the results would be much better.
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstuck...@attglobal.net
> ==================

Actually, I really like the idea of creating the file with the
database data already written to it, provided including that file
would be faster than making a call to the database for every page
request. Thanks for all the ideas, - Dave
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Using server to list CSS page list in menu
Next Topic: passing variable to a nested array
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Sat Nov 23 16:11:11 GMT 2024

Total time taken to generate the page: 0.03583 seconds