За последние 24 часа нас посетили 20189 программистов и 1009 роботов. Сейчас ищут 364 программиста ...

php - асинхронные скрипты

Тема в разделе "PHP для новичков", создана пользователем torsar, 21 янв 2017.

  1. torsar

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

    С нами с:
    21 ноя 2012
    Сообщения:
    130
    Симпатии:
    1
    Где то я мельком читал, что в новых версиях php можно создавать
    асинхронные и частично асинхронные скрипты.
    Или как-то так.
    Где почитать. желательно на русском.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Без контекста непонятно о чём речь. Предлагаю почитать там, где ты это видел.
     
  3. torsar

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

    С нами с:
    21 ноя 2012
    Сообщения:
    130
    Симпатии:
    1
    Как в ноде.
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    В php это не нужно
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    @torsar пхп совсем не похож на джаваскрипт и ноду. поэтому прямых аналогов быть не может. тем не менее, делают некие "асинхронные запросы" и "промисы". поэтому пожалуйста уточни что именно ты хочешь сделать. конкретно.
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    А вообще, кстати, кто-нибудь пользовался на полную thread-safe сборкой php?
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Ну вообще из желания асинхронности автоматически не следует, что нам нужны несколько потоков и thread-safe. ReactPHP будет работать и в одном потоке, если иное невозможно. Будет очередь обработки событий и будет убедительная иллюзия параллельности. Путь не очень эффективно, зато переносимо.
    Я им не пользуюсь, только читал.
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    @artoodetoo а я использую форки PCNTL для многопоточной обработки данных, или для многопоточного клиента. @mkramer а что такое thread-safe?))
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    я только хотел сказать, что асинхронность ≠ многопоточность, это отсутствие необходимости ждать выполнения задания прямо сейчас.
    --- Добавлено ---
    например: у нас есть серверный скрипт, который обрабатывает заполненную форму и посылает email с просьбой подтвердить что-то там. мы можем буквально вызвать отправку письма и это будет синхронный запрос, наш скрипт будет дожидаться пока отправка не выполнится, (а это небыстро), только потом сможет делать что-то ещё.
    а можем поставить задание на отправку письма в очередь и сразу заняться другими делами. это по сути асинхронный запрос.

    аналогично можно поступить с СМСками, генерацией превьюшек, уведомлением каких-то внешних сервисов и т.п.

    так что, для конкретной задачи вполне можно найти решение на пхп, без мультипоточности.
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    У меня как-то был напилен генератор кой-каких структур с отложенным выполнением кода, типа псевдоасинхронность, но это лютый костыль, который, в последствии, был заменен yeld-генераторами.

    Именно вот асинхронность как таковая в пхп не нужна. Если нужны параллельные вычисления или еще что-то в таком духе - юзайте воркеров.
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Я недавно находил очень элегантное решение с "распараллеливанием" через отправку системных сообщений и пулом исполнителей, которые по мере надобности рождаются в кроне и ждут. ( ворнинг: на винде наверное недоступно :D )

    Creating a Message Queue in PHP Without External Libraries

    Межпроцессное взаимодействие в PHP
     
    #11 artoodetoo, 23 янв 2017
    Последнее редактирование: 23 янв 2017
    SamyRed нравится это.
  12. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    не теперь :D
    [​IMG]
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Только вот ты все равно сделал это не на венде, а на линуксе.
     
  14. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Но это прикольно, да.
     
  15. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Мне интересно, сколько человек будут в реальной жизни покупать виндовый сервер, чтобы потом юзать на нем линуксовую подсистему.. Речь-то об этом.
     
    SamyRed нравится это.
  16. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Майкрософт силён в корпоративном сегменте. Поэтому в интранете очень вероятно ВСЁ будет на винде.
    Цену товара обычно определяет не себестоимость, а маркетинг, так и здесь…
     
  17. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Мне вообще интересно, сколько человек будет покупать виндовый сервер...
     
  18. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Если бы не покупали, майкрософт не выпускала бы. Сервера w3c, кстати, майкрософтовые. У них там ASP.NET крутится.
     
  19. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Странные люди)
     
  20. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Ды нет, ASP приятная платформа. На шарпах сервер кодить - красота же. Был бы винсервер бесплатный, мб аспа было гораааздо больше на рынке, чем сейчас. Хотя, говорят, с самим сервером проблемы бывают порой.
     
  21. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Ну как и со всем, к чему приложили руку мисросовт. Почему я не удивлён?!
     
  22. torsar

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

    С нами с:
    21 ноя 2012
    Сообщения:
    130
    Симпатии:
    1
    php для web
    Работа с сокетами.

    Если в скрипте не длительная работа с сокетами.
    Скрипт отработал с сокетами и завершился.
    Это понятно.

    А если сокет нужно слушать длительное время или постоянно?
    Можно ли такое на php для web?