1. Куча / Говнокод #27293

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    start_link(Shard, Subscriber) ->
        gen_server:start_link(?MODULE, {server, Shard, Subscriber}, []).
    
    start_link_client(Shard, RemoteNode, Parent) ->
        gen_server:start_link(?MODULE, {client, Shard, RemoteNode, Parent}, []).
    
    
    init({server, Shard, Subscriber}) ->
        {ok, #server{ shard      = Shard
                    , subscriber = Subscriber
                    }};
    init({client, Shard, RemoteNode, Parent}) ->
        {ok, #client{ parent     = Parent
                    , shard      = Shard
                    }}.

    Запостил: CHayT, 12 Марта 2021

    Комментарии (12) RSS

    • Паттерн "сиамский gen_server"
      Ответить
      • Кстати, а почему клиент gen_server?
        Ответить
        • В эрланге 90% всех долгоживущих процессов — gen_server, просто потому что удобно. Ручками спавнить процессы тоже можно, но с ними будет больше мороки с горячей заменой кода, дебагом и т.д.
          Ответить
          • > долгоживущих

            А, т.е. он "клиент" для какого-то сервера, но при этом "сервер" для кого-то ещё.
            Ответить
            • Ну типа того. "Сервер" в данном случае может ему пушить данные.
              Ответить
    • Клиент-серверная рахитектура.
      Ответить
    • Это иврит? Справа налево читать надо?
      Ответить
    • Анскильная лалка
      Ответить

    Добавить комментарий