Запуск / остановка твиттера в фоновом режиме - PullRequest
1 голос
/ 04 мая 2011

Я отбрасываю старый вопрос для лучшего формулирования вопроса.Я использую api через Twitter через php, как показано ниже.Когда я запускаю его через командную строку.Сценарий продолжает работать, и когда я нажимаю Ctrl + C, сценарий останавливается.Это здорово и все, но я хотел бы запустить его в фоновом режиме.Когда пользователь создает новый поиск, приведенный ниже скрипт активируется и продолжает работать до тех пор, пока не поступит сигнал sop.Точно так же, как версия cli, но в фоновом режиме.

Как мне этого добиться?

Хорошо, вот фрагмент кода:

$opts = array(
    'http' => array(
        'method'  => 'POST',
        'content' => 'track=ipad'
    )
);

$context = stream_context_create($opts);
$stream  = fopen('http://test@stream.twitter.com/1/statuses/filter.json','r', false, $context);

while (!feof($stream)) {
    if (!($line = stream_get_line($stream, 200000, "\n"))) {
        continue;
    }

    $tweet = json_decode($line);
    // mysql query
}

Я бегуэто

Ответы [ 3 ]

0 голосов
/ 22 марта 2012

Это должно быть решено запуском php-скрипта как демона из командной строки, но есть много вещей, которые нужно учитывать.

  • что, когда система перезагружается?
  • что когдавозникает ошибка?
  • как насчет управления памятью?
  • как насчет мониторинга?

Хорошее начало - презентация Йероена Кеппенса PHP в темноте он сделал на множественной конференции php.

0 голосов
/ 21 мая 2012

Я пытаюсь сделать то же самое с этим руководством . Он использует пакет System_Daemon pear и обеспечивает функции start / stop .

0 голосов
/ 04 мая 2011

Возможно, вы захотите изучить ajax или другие методы веб-браузера, такие как комета или веб-сокеты, чтобы добиться того, что вы хотите.

update
Так что если вы хотите, чтобыдля запуска на стороне сервера вы должны использовать функцию exec php что-то вроде:

exec("php-cli runForever.php");
...