serious problem need help.

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Bob Bedford

    serious problem need help.

    Hi all,
    I'm having troubles with my hosting and for a few reasons I can't change.

    So here is my problem: I receive XML files with images included in the file.
    I've to parse the file, save datas in a database and save images after
    resizing them. The whole process takes sometimes more than 10 seconds (the
    limit of the scripts) so I've errors.

    It's there any way to have an other process that do the image processing
    (like an automatic "post" wich send the images) ? How ? Exec isnt' allowed
    on the server.

    Please help....

    Bob



  • .:[ ikciu ]:.

    #2
    Re: serious problem need help.

    Hmm Bob Bedford <bob@bedford.co mwrote:
    images after resizing them. The whole process takes sometimes more
    than 10 seconds (the limit of the scripts) so I've errors.
    then you should to set new time limit for script execution


    --
    ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
    Ikciu | gg: 718845 | yahoo: ikciu_irsa | www: www.e-irsa.pl

    2be || !2be $this =mysql_query();


    Comment

    • Bob Bedford

      #3
      Re: serious problem need help.

      then you should to set new time limit for script execution

      Obviously you guess I can't do it !!! I can't modify anything in the server
      settings.

      Bob



      Comment

      • .:[ ikciu ]:.

        #4
        Re: serious problem need help.

        Hmm Bob Bedford <bob@bedford.co mwrote:
        >then you should to set new time limit for script execution
        >
        Obviously you guess I can't do it !!! I can't modify anything in the
        server settings.

        why?

        --
        ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
        Ikciu | gg: 718845 | yahoo: ikciu_irsa | www: www.e-irsa.pl

        2be || !2be $this =mysql_query();


        Comment

        • Tim Hunt

          #5
          Re: serious problem need help.


          Bob Bedford wrote:
          then you should to set new time limit for script execution
          >
          Obviously you guess I can't do it !!! I can't modify anything in the server
          settings.
          >
          Bob
          Some hosts let you change the timeout using ini_set, does yours?

          If not could you split the processing over two scripts?

          In the first script parse the xml file, update database, copy the image
          to a temporary file and use $_SESSION to store the temp filename. Then
          redirect to the second script using header('Locatio n:') and let the 2nd
          script finish off the resizing & database updates

          This way you have a whole twenty seconds to play with.

          Comment

          • Stefan

            #6
            Re: serious problem need help.

            ..:[ ikciu ]:. wrote:
            Hmm Bob Bedford <bob@bedford.co mwrote:
            >>then you should to set new time limit for script execution
            >>
            >Obviously you guess I can't do it !!! I can't modify anything in the
            >server settings.
            >
            >
            why?
            >
            he can't, thats it. Maybe he has a shared hosting service.
            Bob, I heared of a method how the script calles itself if the execution-time
            reaches a limit. Maybe that could be helpfull. I saw it in a script, but i
            don't remember its name, it was about mysql, mysqldump or something like
            that.
            Stefan

            Comment

            • Bob Bedford

              #7
              Re: serious problem need help.

              Some hosts let you change the timeout using ini_set, does yours?
              No, id doesn't allow using ini_set. (it would be too simple).
              If not could you split the processing over two scripts?
              That's the way I'm looking for.
              >
              In the first script parse the xml file, update database, copy the image
              to a temporary file and use $_SESSION to store the temp filename. Then
              redirect to the second script using header('Locatio n:') and let the 2nd
              script finish off the resizing & database updates
              >
              This way you have a whole twenty seconds to play with.
              It's there any way in PHP to execute (without using location as it changes
              page) a new page ? I don't have access to exec()...
              My idea is to manage the recording in the database then every time I've new
              images, send them to a new script. The main process will do easely in 10
              seconds then every process will redim and save the images (time consuming)
              and it may also do it in 10 seconds.

              Problem: I don't know how to do so (launch an other script without exec)
              passing the files (like a normal post or get will do).

              Bob



              Comment

              • Moot

                #8
                Re: serious problem need help.


                Bob Bedford wrote:
                Hi all,
                I'm having troubles with my hosting and for a few reasons I can't change.
                >
                So here is my problem: I receive XML files with images included in the file.
                I've to parse the file, save datas in a database and save images after
                resizing them. The whole process takes sometimes more than 10 seconds (the
                limit of the scripts) so I've errors.
                >
                It's there any way to have an other process that do the image processing
                (like an automatic "post" wich send the images) ? How ? Exec isnt' allowed
                on the server.
                >
                Please help....
                >
                Bob
                Do you have access to CRON? If so, you could parse the xml upon
                retrieval and store the paths to the images to be redimensioned in a
                table queue. You could then have a cron script run once a minute or
                (as often as necessary) to try and clear out the queue.

                Comment

                • Daz

                  #9
                  Re: serious problem need help.


                  Moot wrote:
                  Do you have access to CRON? If so, you could parse the xml upon
                  retrieval and store the paths to the images to be redimensioned in a
                  table queue. You could then have a cron script run once a minute or
                  (as often as necessary) to try and clear out the queue.
                  Another alternative to CRON, would be to create a script that checks if
                  anything needs to be done every time a page is clicked upon. It can be
                  as simple as adding a function call or include() to the pages you want
                  to act as the trigger. It's more of an advantage when you get heavier
                  traffic on a website, but it's a possibility. I think the best place to
                  add a trigger, would be to the footer (if you use one) which would be
                  appended to every page, and trigger last thing, so it wouldn't
                  interfere with the page generation for the user.

                  Comment

                  • Tim Hunt

                    #10
                    Re: serious problem need help.


                    Bob Bedford wrote:
                    Some hosts let you change the timeout using ini_set, does yours?
                    No, id doesn't allow using ini_set. (it would be too simple).
                    >
                    If not could you split the processing over two scripts?
                    That's the way I'm looking for.
                    >

                    In the first script parse the xml file, update database, copy the image
                    to a temporary file and use $_SESSION to store the temp filename. Then
                    redirect to the second script using header('Locatio n:') and let the 2nd
                    script finish off the resizing & database updates

                    This way you have a whole twenty seconds to play with.
                    It's there any way in PHP to execute (without using location as it changes
                    page) a new page ? I don't have access to exec()...
                    My idea is to manage the recording in the database then every time I've new
                    images, send them to a new script. The main process will do easely in 10
                    seconds then every process will redim and save the images (time consuming)
                    and it may also do it in 10 seconds.
                    >
                    Problem: I don't know how to do so (launch an other script without exec)
                    passing the files (like a normal post or get will do).
                    >
                    You can curl or sockets to post data to another script


                    http://uk.php.net/manual/en/function.fsockopen.php.

                    The 1st script may timeout waiting for the response, I dont think this
                    will affect the execution of the 2nd script, as long as the 2nd script
                    starts before the 1st timeouts. A best guess not a guarantee..

                    Comment

                    • Jerry Stuckle

                      #11
                      Re: serious problem need help.

                      Bob Bedford wrote:
                      >>Some hosts let you change the timeout using ini_set, does yours?
                      >
                      No, id doesn't allow using ini_set. (it would be too simple).
                      >
                      >
                      >>If not could you split the processing over two scripts?
                      >
                      That's the way I'm looking for.
                      >
                      >
                      >>In the first script parse the xml file, update database, copy the image
                      >>to a temporary file and use $_SESSION to store the temp filename. Then
                      >>redirect to the second script using header('Locatio n:') and let the 2nd
                      >>script finish off the resizing & database updates
                      >>
                      >>This way you have a whole twenty seconds to play with.
                      >
                      It's there any way in PHP to execute (without using location as it changes
                      page) a new page ? I don't have access to exec()...
                      My idea is to manage the recording in the database then every time I've new
                      images, send them to a new script. The main process will do easely in 10
                      seconds then every process will redim and save the images (time consuming)
                      and it may also do it in 10 seconds.
                      >
                      Problem: I don't know how to do so (launch an other script without exec)
                      passing the files (like a normal post or get will do).
                      >
                      Bob
                      >
                      >
                      >
                      Bob,

                      You don't "launch another page with exec()". Rather, you redirect to
                      the new page with header('Locatio n: pagename').

                      Just be sure you don't create any output before this. And you can save
                      the data you're working on in the session (or pass it as GET parameters).

                      --
                      =============== ===
                      Remove the "x" from my email address
                      Jerry Stuckle
                      JDS Computer Training Corp.
                      jstucklex@attgl obal.net
                      =============== ===

                      Comment

                      • .:[ ikciu ]:.

                        #12
                        Re: serious problem need help.

                        Hmm Bob Bedford <bob@bedford.co mwrote:
                        >then you should to set new time limit for script execution
                        ..htaccess or ini_set()


                        --
                        ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
                        Ikciu | gg: 718845 | yahoo: ikciu_irsa | www: www.e-irsa.pl

                        2be || !2be $this =mysql_query();


                        Comment

                        • Rik

                          #13
                          Re: serious problem need help.

                          Daz wrote:
                          Moot wrote:
                          >Do you have access to CRON? If so, you could parse the xml upon
                          >retrieval and store the paths to the images to be redimensioned in a
                          >table queue. You could then have a cron script run once a minute or
                          >(as often as necessary) to try and clear out the queue.
                          >
                          Another alternative to CRON, would be to create a script that checks
                          if anything needs to be done every time a page is clicked upon. It
                          can be as simple as adding a function call or include() to the pages
                          you want to act as the trigger. It's more of an advantage when you
                          get heavier traffic on a website, but it's a possibility. I think the
                          best place to add a trigger, would be to the footer (if you use one)
                          which would be appended to every page, and trigger last thing, so it
                          wouldn't interfere with the page generation for the user.
                          Yup, perhaps flush(), and maybe on more traffic (allthough, on more traffic
                          an other hoster might be more helpfull), create a possibility it's fired:

                          if(rand(0,99) == 1){
                          //run script
                          }

                          --
                          Rik Wasmus


                          Comment

                          • Bob Bedford

                            #14
                            Re: serious problem need help.

                            You can curl or sockets to post data to another script
                            >

                            http://uk.php.net/manual/en/function.fsockopen.php.
                            >
                            The 1st script may timeout waiting for the response, I dont think this
                            will affect the execution of the 2nd script, as long as the 2nd script
                            starts before the 1st timeouts. A best guess not a guarantee..
                            Thanks for your reply, I'll have a look at this solution.

                            Cheers



                            Comment

                            • Bob Bedford

                              #15
                              Re: serious problem need help.

                              You don't "launch another page with exec()". Rather, you redirect to the
                              new page with header('Locatio n: pagename').
                              >
                              Just be sure you don't create any output before this. And you can save
                              the data you're working on in the session (or pass it as GET parameters).
                              I wanted to avoid to redirect as I've to pass by all records I've already
                              done every time I call the script again and this will be very long.

                              I've got an other answer it has been said to "refresh" the page. Will first
                              look at fsockopen then at this solution. Maybe I'll do both.

                              Thanks.

                              Bob



                              Comment

                              Working...