Size: a a a

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

2020 January 22

ST

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
И частота нужна секунда и меньше
для опроса чужих апи? 😊
расскажи, что получилось, когда сделаешь
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Sergey Trofimov
для опроса чужих апи? 😊
расскажи, что получилось, когда сделаешь
Ага, ну я на самом деле для одного букмекера уже на nodejs сделал :) Интересно, как это на кложуре бы выглядело
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
И частота нужна секунда и меньше
если частота нужна минимальная, то я бы просто привязывался к длительности процедуры получения данных
получил данные, обработал, ушёл в новый цикл, и так без конца
если нужно немного подождать, то добавить Thread/sleep
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Кстати, если кому интересно, клиентская библиотека rabbitmq на nodejs совсем плохая. Она синхронно посылает сообщения в очередь, поэтому nodejs быстро сходит с ума, если много сообщений туда кидать 😁
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
40 сообщений в секунду мне было достаточно, чтобы у меня хип переполнялся
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
можешь прописать полную конструкцию? я уже плыву после трех часов  clojure
можно и update-in, но будет выглядеть странно
(swap! app-state update-in [:servers :dev] #(assoc % :status 200))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
можно и update-in, но будет выглядеть странно
(swap! app-state update-in [:servers :dev] #(assoc % :status 200))
но в случае, когда у тебя уже есть функция для выставления статуса в объект, то тогда в самый раз
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Sergey Trofimov
если частота нужна минимальная, то я бы просто привязывался к длительности процедуры получения данных
получил данные, обработал, ушёл в новый цикл, и так без конца
если нужно немного подождать, то добавить Thread/sleep
Вроде тоже рабочий вариант, но я боюсь, что тут как-то ресурсы неконтролируемо будут потребляться
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Скажем, идёт 100 матчей, на каждый из них я создаю такой цикл. Кажется, что это будет жрать или слишком много процессора, но скорее слишком много io :)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
Вроде тоже рабочий вариант, но я боюсь, что тут как-то ресурсы неконтролируемо будут потребляться
вот тут как раз никаких вопросов — один поток с циклом, даже никаких вопросов с асинхронным выполнением
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Ну в целом да, я думал сделать на кложуровских future
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Вроде очень просто получается
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
Скажем, идёт 100 матчей, на каждый из них я создаю такой цикл. Кажется, что это будет жрать или слишком много процессора, но скорее слишком много io :)
в самый раз для core async pipeline
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
Ну в целом да, я думал сделать на кложуровских future
а вот это в самый раз для «Кажется, что это будет жрать или слишком много процессора, но скорее слишком много io :)» 😊
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Sergey Trofimov
в самый раз для core async pipeline
Наверное, надо все таки грокнуть уже core.async :)
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Sergey Trofimov
а вот это в самый раз для «Кажется, что это будет жрать или слишком много процессора, но скорее слишком много io :)» 😊
Ну идея была сделать таймер только для списка, а сходить по всем матчам фьючерами
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
А не городить кучу таймеров
источник

D

Dos in Clojure — русскоговорящее сообщество
Сергей Суржик
(def app-state (atom {:servers {:dev {:url "url-dev" :status nil} :test {:url "url-test" :status nil}}}))
(swap! app-state assoc-in [:servers :dev] {:status 200})

при таком апдейте сносится url
(swap! app-state update-in [:servers :dev] merge {:status 200})
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
Ну идея была сделать таймер только для списка, а сходить по всем матчам фьючерами
есть чего сказать, но нужно работать 😊
источник