Re: PHP + Cron jobs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 29, 2008 at 11:59 AM, Nathan Rixham <nrixham@xxxxxxxxx> wrote:
> Shawn McKenzie wrote:
>>
>> Shawn McKenzie wrote:
>>>
>>> Waynn Lue wrote:
>>>>
>>>> Yup, you're completely right.  I checked the cronjob and got this:
>>>>
>>>> PHP 5.2.6 (cgi) (built: Aug 11 2008 13:39:32)
>>>> Copyright (c) 1997-2008 The PHP Group
>>>> Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
>>>>   with Advanced PHP Debugger (APD) v0.9, , by George Schlossnagle
>>>>
>>>> Turns out there's /usr/bin/php, which is the cgi version, and
>>>> /usr/local/bin/php, which is the cli version.  So I see three
>>>> possiblities.
>>>> 1. Change the shebang on the php script itself, 2. change the crontab to
>>>> reflect to path I care about, or 3. replace /usr/bin/php.  I'd prefer
>>>> the
>>>> 3rd, but does that cause problems for me in my actual web pages?
>>>>
>>>> Thanks,
>>>> Waynn
>>>>
>>> Depends upon whether your webserver is using the PHP CGI binary or the
>>> apache module.  I thought common convention was that the CGI was named
>>> php-cgi?
>>>
>>> I would rename '/usr/bin/php' to '/usr/bin/php-cgi', grep your web
>>> server conf file(s) for /usr/bin/php and if found then change it to
>>> /usr/bin/php-cgi.
>>>
>>> -Shawn
>>>
>> Along with that, I would opt for always using the full path in the cron
>> job.
>>
>> -Shawn
>
> see I don't use cron; I run small scripts from the command line that fork
> then run forever on a while loop with a sleep.. so:
>
> worker.php
> <?php
> include '/path/to/maininclude.php';
>
> $pid=pcntl_fork();
> if(!$pid) {
>  while(1) {
>    $work = new work_object;
>    if( $job = $work-getJobs->('thisjob') ) {
>      // i have something to do, and doing it here
>    } else {
>      sleep(10);
>    }
>  }
> } else {
>  echo "\ndaemon launcher done id $pid\n";
> }
> ?>
>
> or you can run say 10 versions at the same time for things where
> multi-process helps (scrapers, whois checks etc)
>
> controller.php
> <?php
> include '/path/to/maininclude.php';
>
> for($icount=0;$icount<11;$icount++)  {
>        include './worker.php'; //spawn 10 workers
> }
> ?>
>
> just my preference :)
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Just out of curiosity, how's your worker keep track of jobs?

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux