PHP sleep() ne fonctionne pas

Je suis en train de faire un fichier php qui va lancer un événement après un délai de cinq minutes. De la documentation, il semble que d'attendre cinq minutes n'aurait besoin que d' sleep(300), mais ce n'est pas de travail. J'ai testé tous les autres codes, et il fonctionne très bien jusqu'à ce que je ajouter de la sleep ligne.

<?php
/**
* Twitter App
* bagelBack.php
* Takes parameters from $_POST and creates a tweet
* RKoutnik, 2012
* Code originally found on http://140dev.com/twitter-api-programming-tutorials/hello-twitter-oauth-php/
*/
$name = '@'.$_POST['twitterName'];
$type =  $_POST['bagelType'];
/* BEGIN CONTENT SPINNER TO IMPRESS LYNK */
$bagels = array(
0 => "bagel",
1 => "breakfast treat",
2 => "doughy food-type item",
3 => "round yeast-raised munchie",
4 => "doughnut-shaped roll",
5 => "hard-crusted treat"
);
$finished = array(
0 => "finished toasting",
1 => "completed toasting",
2 => "stopped being raw",
3 => "concluded the toasting phase",
4 => "been sucessfully executed",
5 => "been roasted to a crisp"
);
$food = $bagels[array_rand($bagels)];
$fin = $finished[array_rand($finished)];
sleep(300);
$tweet_text = $name.", Your ".$type." ".$food." has ".$fin;
$result = post_tweet($tweet_text);
echo "Response code: " . $result . "\n";
function post_tweet($tweet_text) {
//Use Matt Harris' OAuth library to make the connection
//This lives at: https://github.com/themattharris/tmhOAuth
require_once('tmhOAuth.php');
//Set the authorization values
//In keeping with the OAuth tradition of maximum confusion, 
//the names of some of these values are different from the Twitter Dev interface
//user_token is called Access Token on the Dev site
//user_secret is called Access Token Secret on the Dev site
//The values here have asterisks to hide the true contents 
//You need to use the actual values from Twitter
$connection = new tmhOAuth(array(
'consumer_key' => '[redacted]',
'consumer_secret' => '[redacted]',
'user_token' => '[redacted]',
'user_secret' => '[redacted]',
'curl_ssl_verifypeer'   => false
)); 
//Make the API call
$connection->request('POST', 
$connection->url('1/statuses/update'), 
array('status' => $tweet_text)
);
return $connection->response['code'];
}
?> 
  • Qu'entendez-vous par cela ne fonctionne pas? Le script PHP arrêter complètement de travailler. lorsque vous avez le sommeil() appel? Est-il le sommeil, mais pas pour cinq minutes?
  • Il ne fonctionne pas du tout. Il n'a pas poster quoi que ce soit sur twitter, comme il se doit.
  • Qu'est-ce que votre max_execution_time dans votre php.ini? Peut-être que le script est en cours d'exécution juste trop long et donc, avant que le tout est fait.
  • Les 30 secondes. Ouais, c'était ça. Merci, je ne connaissais pas l'existence!
  • Il aurait été utile de préciser si cette PHP a été exécutée par un serveur web ou d'une ligne de commande.
  • ok, je vais m'en souviens que pour mon prochain (inévitable) de PHP en question. Quelle est la différence?
  • Eh bien, pour une chose, votre plate-forme pourrait être différente max_execution_time pour CLI que pour CGI/mod_php. Ubuntu PHP5 a /etc/php5/cli/php.ini et /etc/php5/apache2/php.ini. Mais en général, l'environnement influe sur le comportement, de sorte que le plus d'informations le mieux. (Dans des limites raisonnables bien sûr.)

InformationsquelleAutor SomeKittens | 2012-06-12