본문 바로가기

개발도구/PHP,ASP,JSP,SCRIPT

[php] 많은 Push 을 보낼때 적당한 시간을 두어 보내도록 하기

$usersQuery = "SELECT phoneUnique FROM table WHERE getNews = 'Y' AND LENGTH(phoneUnique) > 60";
$usersResult = mysql_query($usersQuery);

$user = mysql_fetch_assoc($usersResult);

$articleQuery = "SELECT articleId, articleTitle, articleType FROM table ";
$articleResult = mysql_query($articleQuery);
while ($article = mysql_fetch_assoc($articleResult)) {
$destroyQuery = "DELETE FROM table WHERE articleId = '{$article["articleId"]}'";
$destroyResult = mysql_query($destroyQuery);

mysql_data_seek($usersResult, 0);
$today = date("Y-m-d H:i:s");
$started_at = microtime(true);
print "{$today} => {$article['articleId']} :: sending " . mysql_num_rows($usersResult) . " Users\tTime: ";
// while ($user = mysql_fetch_assoc($usersResult)) {
        for ($i=1; $i<=mysql_num_rows($usersResult); $i++) {
$user = mysql_fetch_assoc($usersResult);
/*
// 스크립트 실행 후 푸쉬서버와 연결되는데 걸리는 시간 4초, 약 5초 (즉 5초가 있어야 큐가 사라짐.)
// 1초에 실행되는 스크립트 개수 18개, 약 20개
// 그렇다면 실제로 약 5초가 지난 순간(약 100개의 스크립트가 실행된 후)부터 푸쉬서버와 연결됨
// 여기에 100건마다 컨넥션이 딜레이되는 시간을 0.5초로 추정하면 1000건에 총 5초가 추가됨
// 실제 푸쉬서버에 연결되서 다 보내지는 시간 5초 + 100건마다 누적되는 시간 0.5초 = 그래서 1000건마다 슬립 10초 걸었음.
*/ 
        if ($i % 1000 == 0) sleep(10);
// print "\n{$i}:{$user["phoneUnique"]}";
$articleId = $article["articleId"];
$articleTitle = addslashes($article["articleTitle"]);
$articleType = $article["articleType"];

.
.
.
.
.
 

'개발도구 > PHP,ASP,JSP,SCRIPT' 카테고리의 다른 글

[HTML5] 참고 사이트 - http://apps.ft.com/  (0) 2011.09.30
[Linux] cron - php 설정 [펌]  (0) 2011.09.23
[PHP] facebook API call returns  (0) 2011.09.15
[PHP] twitter oauth API  (0) 2011.09.15
[php] post 빈칸넘기기  (0) 2011.09.14