0

First, I wanted to say, that I do aware of that thread: PHP - kill exec on client disconnect, but the solution marked there as answer doesn't work!

Problem:

I got a script, that executes other script that does numeric operations... but would like to force it to stop on disconnect, as those operations may take even few minutes, and are using alot of server resources. Hitting F5 few times only makes those times longer and longer...

What I tried... I tried every solution I found. Especially the one given above, but none of them seems to work. Scripts are still running in background till finish.

Any ideas?

PHP5 + Apache on Debian.

Community
  • 1
  • 1
Flash Thunder
  • 11,672
  • 8
  • 47
  • 91

1 Answers1

0

Have you tried to produce some output inside your numerical operations logic using flush()? for example assume you've a recursive algorithm that does some calculations, do the output writing every 100 recursive calls as follows and see if it aborts:

recursive(input) {

  if(input % 100 == 0) // check every 100 recursive call
  {
    echo " "; 
    flush(); // attempt to write to output stream

    if (connection_aborted()) // will be true if output writing fails.
      exit;
  }

  // do something 
  // your code logic...
  input = input + 1;

  // and call recursive
  recursive(input);
}    
Shadi Shaaban
  • 1,670
  • 1
  • 10
  • 17