
Llll
22.11.2016
12:47:45
Не

Антон
22.11.2016
12:47:47

yopp
22.11.2016
12:47:51
яб тоже
надо мрт сделать

Google

Andrey
22.11.2016
12:48:15
И кстати, мне одному кажется что перед новым годом не самое лучше время менять работу?
Я с фриланса заметил закономерность что перед нг и летом очень обычно идет спад работы.
В вакансиях есть что-то такое?

I
22.11.2016
12:48:31
я предлагал Антону спину обследовать
да и всем остальным советую с нашим рабочим ритмом

Llll
22.11.2016
12:48:44
А так лучше в Португалию сгоняйте, а не к невропатологу

Татьяна Аква
22.11.2016
12:48:48
Москва
Только офис
Деньги до 200
Спасибо за подсказку)

Антон
22.11.2016
12:48:50

Alex
22.11.2016
12:48:53

I
22.11.2016
12:49:47


ⰿⰰⰾⱏ
22.11.2016
12:50:21
Ок, могу подробнее)
Сейчас ищу Ruby / Elixir Developer для работы над собственными проектами крупнейшей инвестиционной площадки страны. В обязанности будет входить поддержка существующих проектов на Ruby on Rails / AngularJS и разработка новых на Elixir, React, Phoenix.
Задачи:
Работа над движками наших сайтов
Работа над API для мобильных приложений, админкой для колл-центра
Разработка движка для продажи билетов агентами
Работа над созданием новой версии сайта, закладка правильной архитектуры и направление команды в процессе
Основные требования:
Опыт разработки на Ruby от 2 лет
Знание WebSocket
Опыт работы с JS (Angular, React, Redux, Webpack)
Плюсом будет:
Знание фреймворков Rails, Elixir
Опыт работы с PostgreSQL, Redis, Memcached
Проектирование REST API
Покрытие кода тестами
Условия:
Оформление по ТК РФ
100% белая ЗП
Офис около ст. м. Курская
пожалуй Elixir это язык, фреймворк там Phoenix =)

Alex
22.11.2016
12:51:11
Я бы по эликсиру побежал бы в чатик по эликсиру

Konstantin
22.11.2016
12:53:24
ага
эликсир
а по факту фуллстек angular/rails

Google

trickster
22.11.2016
12:54:12
:D
expectiation - reality

Alex
22.11.2016
13:12:10
def fetch_api(retries, retry_time)
retries.times do |i|
resp = Typhoeus.get(API_URL)
break JSON.parse(resp.body) if resp.success?
break if i == retries - 1 # return nil
# try again
sleep retry_time
next
end
end
Мне немного стыдно за этот блок, можно его как то покрасивше оформить?
Не считая готового гема.

yopp
22.11.2016
13:12:55
break if i == retries - 1
но зачем

Alex
22.11.2016
13:13:20
но зачем
к примеру retries = 3. Тогда блок возвращает эту цифру
Поэтому поставил чтобы возвращал nil.

yopp
22.11.2016
13:13:42
но зачем?

Alex
22.11.2016
13:14:00
Мне нужно либо получить Json либо получить nil и я буду знать что апишка недоступна.
это адекватный способ решения проблемы? или можно лучше?

Антон
22.11.2016
13:25:40
а сколько таких запросов вообще будет?
по-моему ты досишь себя
и это не отвечает на вопрос жива ли щас апишка
это какой-то плохой дизайн видится мне

Alex
22.11.2016
13:28:41
Дергается внешняя апишка которая публична.
Дергается фоновым процессом по дизайну.

Антон
22.11.2016
13:29:08
сколько раз в какое время?

I
22.11.2016
13:29:16
а API имеет там версионирование?

Alex
22.11.2016
13:29:16
Каждые 15 минут.

Google

Alex
22.11.2016
13:29:20
Нет.

I
22.11.2016
13:29:24
отстой(

Антон
22.11.2016
13:29:52
Каждые 15 минут.
а не проще дергать каждые 1 минуту и возвращать nil если апишка недоступна?

Alex
22.11.2016
13:30:00
Слишком много данных.
Берутся с публичной апишки данные и строится график.

Антон
22.11.2016
13:30:14
эээ

Alex
22.11.2016
13:30:18
чаще получать данные нет смысла.

Антон
22.11.2016
13:30:30
а ретраи потому что апишка падучая?

Alex
22.11.2016
13:30:44
Обрабатываю вариант что она может упасть.
Например апишка VK падучая.
Т.к апи мне не принадлежит, то я просто делаю ретраи. Это плохая идея?

Антон
22.11.2016
13:31:58
я бы ретраил сайдкиком, чтобы не подвешивать таску
после 15 минут ретраев убивал бы

Alex
22.11.2016
13:33:01
У меня просто пока идея в крон поставить задачу которая будет раз в 15 минут получать данные.

Антон
22.11.2016
13:33:03
sleep в процессе имеет право на существование - но лучше отказаться если можно отказаться

Alex
22.11.2016
13:33:28
Т.е ты считаешь что ретрай надо выкинуть из враппера и обрабатывать по месту?

Антон
22.11.2016
13:33:45

Alex
22.11.2016
13:33:56
знаю про whenever, я упрощал.
Я пока планирую этот минипроект потом на heroku захостить.
Там крон доступен?

Антон
22.11.2016
13:38:54
там clockwork

Google

Антон
22.11.2016
13:39:23
clock как воркер, за него платить надо

Alex
22.11.2016
13:39:35
вот чорт.

s
22.11.2016
13:46:50
на хероку есть бесплатно resque scheduler
точнее, можно использовать шедулер для resque
ну, года 3-4 назад точно можно было)

Igor
22.11.2016
14:38:20
https://www.nomadproject.io/docs/job-specification/ephemeral_disk.html
вот это технологии 21 века :)

Антон
22.11.2016
16:00:27
вот если вы не хотите много данных рендерить
каким статусом ответить клиенту - данных дохера
4?? ?

I
22.11.2016
16:01:07
413

Антон
22.11.2016
16:02:07
так размер ответа слишком большой а не запроса

Admin
ERROR: S client not available

Антон
22.11.2016
16:02:28
ниужели везде надо отвечать 422?

I
22.11.2016
16:04:04
хм, есть идея ответить 403

Антон
22.11.2016
16:04:20
тогда уж 402 :)

I
22.11.2016
16:04:34
ну не, это зашквар)
тут имеется ввиду, что запрещено запрашивать такой объем

Антон
22.11.2016
16:05:03
запрашивать можно, можно не вернуть

I
22.11.2016
16:05:21
а 422 - это запрос/сущность не валидна. А она у тебя валидна, просто жирненькая

Антон
22.11.2016
16:05:41
так вот на 422 за что же тут не так отвечает какраз сервер
энтити может быть и размером результата

Google

I
22.11.2016
16:07:14
короче, тут можно по-разному посмотреть

Антон
22.11.2016
16:07:44
403 не подходит потому что в общем случае разрешено

I
22.11.2016
16:08:52
а это на post такой ответ?
просто интересно, а почему ответить-то так нельзя?

s
22.11.2016
16:13:32

Антон
22.11.2016
16:14:39

I
22.11.2016
16:14:55
не, я не про 403
я про то, почему вообще возникло желание слать клиенту ошибку

Антон
22.11.2016
16:15:16

I
22.11.2016
16:15:58
не, я просто о том, почему бы не ответить пользователю все-таки тем, что он хочет?

Антон
22.11.2016
16:16:50

I
22.11.2016
16:17:11
ну так надо отвечать чанками

s
22.11.2016
16:17:39
если не хочется отвечать, то само собой 422
т.е. контент есть, но клиенту его не получить
хоть станцуй, но сервер его отдавать не хочет

I
22.11.2016
16:17:56
http://smsohan.com/blog/2013/05/09/genereating-and-streaming-potentially-large-csv-files-using-ruby-on-rails/

Антон
22.11.2016
16:18:02

I
22.11.2016
16:18:15
ну вот пример того, что люди отвечают стримами огромных csv
ну а на той же node.js такие ответы - это норма

Vladislav
22.11.2016
16:19:23
Есть люди на чат ботах в яндексе?

Антон
22.11.2016
16:20:15
да и... эм... данные могут измениться в процессе выполнения
так что тут я бы еще подумал бы долго