Size: a a a

2019 August 27

AK

Andy Krasnov in pro.elixir
тут либо крестик снимать, либо китель одеть...
источник

YZ

Yura Zhivaga in pro.elixir
> мне нужно частями их отдавать
> только задача отдавать все записи
никакого противоречия, лол
источник

🐱

🐱 Rough Cat in pro.elixir
Yura Zhivaga
> мне нужно частями их отдавать
> только задача отдавать все записи
никакого противоречия, лол
через вебсокеты пачкой
источник

🐱

🐱 Rough Cat in pro.elixir
🐱 Rough Cat
через вебсокеты пачкой
замути стрим в общем
источник

AB

Alexey Bolshakov in pro.elixir
делай как в эластике. там на сервере живет временный датасет. и ты по нему можешь пагинироваться. ну или что-то типа того
источник

AB

Alexey Bolshakov in pro.elixir
если его палочкой не тыкать, он помирает через какое-то время
источник

DS

Dmitriy Strukov in pro.elixir
Отдавать chuk'ами, но не в одном ответе миллион же
источник

DS

Dmitriy Strukov in pro.elixir
епт
источник

DS

Dmitriy Strukov in pro.elixir
я нашел Plug.chunk, вся хуйня
источник

DS

Dmitriy Strukov in pro.elixir
но примера хорошего не могу найти как это работает
источник

VS

Viacheslav Shevchenko in pro.elixir
%% Feel free to use, reuse and abuse the code in this file.

%% @doc Chunked hello world handler.
-module(toppage_h).

-export([init/2]).

init(Req0, Opts) ->
Req = cowboy_req:stream_reply(200, Req0),
cowboy_req:stream_body("Hello\r\n", nofin, Req),
timer:sleep(1000),
cowboy_req:stream_body("World\r\n", nofin, Req),
timer:sleep(1000),
cowboy_req:stream_body("Chunked!\r\n", fin, Req),
{ok, Req, Opts}.
источник

AB

Alexey Bolshakov in pro.elixir
а как оно обработает переключение страниц?
источник

DS

Dmitriy Strukov in pro.elixir
сцук, троли
источник

VS

Viacheslav Shevchenko in pro.elixir
я так понял цель не переключать страницы а чанками отдать большой обьем данных
источник

AB

Alexey Bolshakov in pro.elixir
ну я ж говорю. если каждый раз делать оффсет лимит, то это будет каждый раз создание датасета и из него откусывание. поэтому датасет надо хранить целиком на сервере. отдавать в ответе его хеш. и потом клиент догружает из него данные, передавая хеш. если N секунд этого не делать, сервер выкидывает его. так в эластике сделано, например
источник

YZ

Yura Zhivaga in pro.elixir
Alexey Bolshakov
ну я ж говорю. если каждый раз делать оффсет лимит, то это будет каждый раз создание датасета и из него откусывание. поэтому датасет надо хранить целиком на сервере. отдавать в ответе его хеш. и потом клиент догружает из него данные, передавая хеш. если N секунд этого не делать, сервер выкидывает его. так в эластике сделано, например
мб он в память весь лям записей грузит
источник

DS

Dmitriy Strukov in pro.elixir
несколько сервисов есть, один из сервисов, который хранит в дереве и памяти всю хуйню использует тот сервис над которым я сейчас работаю и откуда он берет данные
источник

AB

Alexey Bolshakov in pro.elixir
значит хранить поинтер внутри дерева и двигаться по нему. итератор или как-т так
источник

DS

Dmitriy Strukov in pro.elixir
Viacheslav Shevchenko
%% Feel free to use, reuse and abuse the code in this file.

%% @doc Chunked hello world handler.
-module(toppage_h).

-export([init/2]).

init(Req0, Opts) ->
Req = cowboy_req:stream_reply(200, Req0),
cowboy_req:stream_body("Hello\r\n", nofin, Req),
timer:sleep(1000),
cowboy_req:stream_body("World\r\n", nofin, Req),
timer:sleep(1000),
cowboy_req:stream_body("Chunked!\r\n", fin, Req),
{ok, Req, Opts}.
А внутри метода send_chunked у Plug тоже самое ведь?
источник

DS

Dmitriy Strukov in pro.elixir
у меня тут Plug прост
источник