За последние 24 часа нас посетили 18679 программистов и 1587 роботов. Сейчас ищут 1833 программиста ...

php daemon

Тема в разделе "Прочее", создана пользователем Padaboo, 27 окт 2017.

  1. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Актуален ли будет демон фреймворк на пхп?
    без сокетов с передачей данных процессу через базу или шаред мемори?
    есть это
    https://habrahabr.ru/post/79377/
     
  2. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Да, весьма. А он не будет падать?
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    @Padaboo я то думал вы снова тут озадачите... по созданию демонов...
     
    [vs] нравится это.
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.861
    Симпатии:
    752
    Адрес:
    Татарстан
    7 лет прошло с той статьи. Я лично ratchet юзаю
     
  5. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    разве через unix sockets не быстрее? Если я правильно понял
     
  6. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Допустим у нас есть браузерная игра:
    1. Участники регистрируются в бой.
    2. Под каждый бой выделяется 1 процесс который завершается после боя.
    3. Процессу выделяется номер игроки юзеры к нему обращаются
    4. Таких процессов может быть 100 одновременно.
    5. Демоны нужны для асинхронности, что бы процесс мог им отвечать в браузер
    6. Демон делает что то по таймауту.
    7. У каждого демона есть свое состояние оно может хранится в базе или в памяти.
     
  7. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Padaboo если выделять процесс на каждый бой, это это должны быть лёгкие процессы, как в Erlang например, потому что отдельный PHP процесс будет много памяти занимать
     
  8. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Можно сделать игроку "состояние" типа: игрок в бою, игрок на улице, игрок в магазине.

    Но бой должен: получать сообщения от игроков удары и отвечать - отнимать жизни.
    Может быть сделать его по типу чата.
    Еще у боя есть внутренние состояние которое должно обновляеться можно конечно сделать через базу данных но тут подойдет наверное процессо.

    Есть предложение как сделать подругому.
     
  9. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Продолжу тему

    1. Написание технического задания.

    1.1 Составление функциональных требований к программному обеспечению.

    1.2 Проектирование схемы базы данных.

    1.3 Составление объектно ориентированных моделей по схеме базы данных.

    1.4 Проектирование общей архитектуры программного обеспечения.

    1.5 Рисование дизайна и юзабилити.

    1.6 Составление сценариев программного обеспечения.

    1.7 Программирование логики сценариев (контроллеров).



    2. Разработка.

    2.1 Постановка задач на 1 неделю.

    2.2 Выполнение задач.

    2.3 Написание тестов.

    2.4 Копия разработанного кода в репозиторий (git bitbucket).

    2.5 Повторение с пункта 2.1


    Варианты кодирования, сложилось несколько подходов к написанию кода:

    1. Процедурный - все кодируется при помощи функций.

    2. Объектно ориентированный.


    Подходы к программированию и проектировани.

    Подход основанный на несинхронных задача которые запускаются в отдельном потоке

    jsocket framework documentation


    Подход основанный на запуске отдельных системных процессов phpDaemon.


    Событийно-ориентированное программирование

    java design patterns + archirecture

    Design architecture books
    Archirecture


    java design patterns visitor
    java design patterns template
    java design patterns strategy
    java design patterns state
    java design patterns observer
    java design patterns memento
    java design patterns mediator
    java design patterns iterator
    java design patterns interpreter
    java design patterns command
    java design patterns-chain
    java design patterns proxy
    java design patterns flyweight
    java design patterns facade
    java design patterns decorator
    java design patterns composite
    java design patterns bridge
    java design patterns adapter
    java design patterns prototype
    java design patterns singleton
    java design patterns factory method
    java design patterns builder
    java design patterns abstract factory
     
  10. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    А чё бы на Java не писать в стиле php design?
     
  11. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Там другой стиль потому что:
    1. Событийность (события интерфейса Swing)
    2. Многопоточность
    3. Асинхроннность

    Пример


    Игровой миро живет сам по себе
    Боты бегают в отдельных потоках
    Игроки бегают в отдельных потоках
    Синхронизация
    События нажатия на интерфейс
    Эффекты тоже в отдельных потоках
    Интерфейс тоже в отдельно потоке

    Иначе все это будет тормозить