За последние 24 часа нас посетили 45373 программиста и 1813 роботов. Сейчас ищут 849 программистов ...

Проблема с "параллельным" постингом в твиттер

Тема в разделе "Прочие вопросы по PHP", создана пользователем alexflom, 25 дек 2009.

  1. alexflom

    alexflom Активный пользователь

    С нами с:
    20 сен 2008
    Сообщения:
    55
    Симпатии:
    0
    История такая. При некоторых действиях юзера на сайте (новый пост,новый камент)
    делаю пост в твиттер. Для того чтобы юзер не ждал обработки добавления поста
    или камента в случае, когда тупит сам твиттер с обработкой запроса - решил http
    запрос на сам твиттер запустить типа в параллельном потоке.
    PHP:
    1.  
    2.             stream_set_blocking($fp, false);
    3.             stream_set_timeout($fp, 4);
    4.             fwrite($fp,
    5.                 "POST /".surl::g('twitterpost')." HTTP/1.1\r\nHost: $server \r\n".
    6.                 "Content-Type: application/x-www-form-urlencoded\r\n".
    7.                 "Content-Length: ".strlen($post)."\r\n".
    8.                 "Connection: close\r\n\r\n$post");
    9.             return $fp;
    10.  
    11.  
    На нужный урл post-ом передается текст для постига в твиттер и там уже происходит
    авторизация в твиттере и постинг.
    Проблема в том, что локально (в денвере) работает, из мира - нет. Пробовал расставлять
    флажки для поиска затыка. Пришел к тому что если перед
    PHP:
    1. return $fp;
    поставить
    PHP:
    1. sleep(1);
    отрабатывает нормально, постит. А в таком виде скрипт находящийся по урлу - даже
    не запускается.
    Вроятно какая-то проблема с синхронизацией, раз нужна задержка в одном потоке.
    Но sleep юзать не кошерно. Подскажите в чем собственно затык и как его решить.
    Спасибо.