Size: a a a

Clojure — русскоговорящее сообщество

2019 November 08

ИФ

Иван Федоров in Clojure — русскоговорящее сообщество
vladimir kozhaev
Ну то есть картинка красивая, но пользы никакой
в чём ещё Вы видите пользу, кроме укладок? может что-то полезное можете порекомендовать пощупать? с меня напиток при встрече
источник

vk

vladimir kozhaev in Clojure — русскоговорящее сообщество
Иван Федоров
в чём ещё Вы видите пользу, кроме укладок? может что-то полезное можете порекомендовать пощупать? с меня напиток при встрече
Это не с мобильного
источник

vk

vladimir kozhaev in Clojure — русскоговорящее сообщество
Я вот разрабатываю кодогенерацию. В планах фреймворк для запуска тестов
источник

vk

vladimir kozhaev in Clojure — русскоговорящее сообщество
Ты мне завтра, во второй половине дня напиши
источник
2019 November 09

k

k0rs4r in Clojure — русскоговорящее сообщество
Подскажите пожалуйста по manifold, почему стрим, созданный из пустой коллекции до первого take! считается не drained ?

(let [source (s/->source [])]
 (prn :#1 (s/drained? source))
 (-> (s/take! source)
     (d/chain
       (fn [item]
         (prn :item item)
         (prn :#2 (s/drained? source))))))
Output:
:#1 false
:item nil
:#2 true
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Кажется, таковым он станет после закрытия
источник

k

k0rs4r in Clojure — русскоговорящее сообщество
Ок, спасибо, проверю.
Я чего-то думал что если из существующей коллекции делать - то после добавления всех элементов он закроется. Да и проверка на closed? там отдельно, drained? как я понимаю проверяет все ли элементы извлечены из стрима. Ну и nil я туда не клал, но после того как его откуда-то достает - стрим таки становится drained. Как-то странно
источник

?

???? in Clojure — русскоговорящее сообщество
k0rs4r
Ок, спасибо, проверю.
Я чего-то думал что если из существующей коллекции делать - то после добавления всех элементов он закроется. Да и проверка на closed? там отдельно, drained? как я понимаю проверяет все ли элементы извлечены из стрима. Ну и nil я туда не клал, но после того как его откуда-то достает - стрим таки становится drained. Как-то странно
manifold не может понять drained? ли источник, пока тот ему об этом не сообщит при попытке взять очередное значение. возвращаемый nil это индикатор drained?, а не значение из источника (в take! можно передать второй аргумент, который будет возвращаться при drained? вместо nil)

> By default, calling take! on a drained source will yield a message of nil. However, if nil is a valid message, we may want to specify some other return value to denote that the source is drained
https://aleph.io/manifold/streams.html
источник

k

k0rs4r in Clojure — русскоговорящее сообщество
Аа ясн, спасибо)
источник
2019 November 10

S

Sergey in Clojure — русскоговорящее сообщество
Может кто-то сталкивался, приложение на тестовом стенде полностью прощупали, всё работает, выкатили в продакшн - рвутся соединения. Соединений много, тысячи.
В чём может быть дело, куда смотреть? Приложение на http-kit, перед которым стоит nginx.
Ошибок никуда не валится, все разрывы видны на клиентской стороне. Памяти достаточно, процессор тоже не потребляется максимально. Ещё не анализировал связь с БД, но метрики сервера с БД тоже особой нагрузки не показывают
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey
Может кто-то сталкивался, приложение на тестовом стенде полностью прощупали, всё работает, выкатили в продакшн - рвутся соединения. Соединений много, тысячи.
В чём может быть дело, куда смотреть? Приложение на http-kit, перед которым стоит nginx.
Ошибок никуда не валится, все разрывы видны на клиентской стороне. Памяти достаточно, процессор тоже не потребляется максимально. Ещё не анализировал связь с БД, но метрики сервера с БД тоже особой нагрузки не показывают
какого рода соединения? вебсокеты?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
я бы проверил настройку напрямую, без nginx
думаю, что у чего-то таймауты в nginx маленькие
у меня, например, для вебсокетов такое:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
источник

S

Sergey in Clojure — русскоговорящее сообщество
Sergey Trofimov
какого рода соединения? вебсокеты?
Нет, хттп
источник

S

Sergey in Clojure — русскоговорящее сообщество
Sergey Trofimov
я бы проверил настройку напрямую, без nginx
думаю, что у чего-то таймауты в nginx маленькие
у меня, например, для вебсокетов такое:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
Поизучаю, спасибо. Вообще, подумал, что нужно логи nginx поанализировать
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey
Нет, хттп
персистетные или что?
мне непонятно понятие «рвутся» для обычных http запросов
если речь про keepalive, то надо смотреть, что может мешать

если рвутся через определённое время, то надо искать, что это за таймаут
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
каждое соединение требует открытого файла
смотри, сколько соединений разрешено для nginx и для приложения
если ничего не настравивать, то максимум может оказаться 1024
источник

S

Sergey in Clojure — русскоговорящее сообщество
Sergey Trofimov
персистетные или что?
мне непонятно понятие «рвутся» для обычных http запросов
если речь про keepalive, то надо смотреть, что может мешать

если рвутся через определённое время, то надо искать, что это за таймаут
Сейчас сложно сказать, никуда не записывал ошибки. Видел, что браузер показывал abort, но были и другие ошибки
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey
Сейчас сложно сказать, никуда не записывал ошибки. Видел, что браузер показывал abort, но были и другие ошибки
ну это как бы разработчик приложения должен понимать, что у него за соединения требуются для работы приложения 😊
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey
Сейчас сложно сказать, никуда не записывал ошибки. Видел, что браузер показывал abort, но были и другие ошибки
аяксовый пуш может работать так
когда есть соединение, которое периодически сбрасывается
источник

GM

Gerr Mes in Clojure — русскоговорящее сообщество
iptables тоже посмотрите
источник