@proRuby

Страница 1470 из 1594
Alex
24.09.2018
10:04:31
ударится разок током и поймет, все так делали
если его при этом не замкнет что не сможет освободиться

Tim
24.09.2018
10:04:40
у меня и желания в розетку палец засунуть не было

kolas
24.09.2018
10:05:19
Tim
24.09.2018
10:05:44
какие нить 12 вольт не смертельны, но не докажут что это опасно да.
мож он наоборот от тока кайфовать начнёт после таких процедур

Google
Tim
24.09.2018
10:06:10
кучу раз било током 220, вроде не умер
главное одной рукой с ним работать?

kolas
24.09.2018
10:06:17
в детстве от бп денди било часто ?

kolas
24.09.2018
10:07:14
щас тоже иногда бьет когда неосторожно с проводкой работаю, но это редко бывает, раз в 5 лет наверное )

Alex
24.09.2018
10:07:29
ты хотя бы с проводкой работаешь.

kolas
24.09.2018
10:08:19
так не профессионально, розетку там поменять или выключатель света

Tim
24.09.2018
10:15:12
опа, удалили спамера?

Nick
24.09.2018
10:15:41
опа, удалили спамера?
Ну а смотреть на него что ли?

Tim
24.09.2018
10:15:53
просто никогда не удаляли

Nick
24.09.2018
10:17:41
Ну я просмотрел чяд за выхи. Там большинство ботов уже забанены.

Black
24.09.2018
11:15:14
Уважаемые погромисты, скажите пожалуйста, как решить 504 Gateway bad request? В nginx.conf в блоке http добавил блок server с временем (proxy...) не помогает, все равно время ожидания одна минута.

Google
Alex
24.09.2018
11:50:12
настроить nginx_debug и error_log path debug; и смотреть от и до почему не пашет

Black
24.09.2018
12:07:41
Ошибся с bad request, а на самом деле timeout

Alex
24.09.2018
12:10:34
Ошибся с bad request, а на самом деле timeout
так бэкенд нормально отвечает или нет?

Black
24.09.2018
12:34:26
так бэкенд нормально отвечает или нет?
Просто процессы работают долго, а у приложение как бы стоит ограничение на обратный ответ (1 минута)

Black
24.09.2018
12:35:20
и проверяйте статус в очереди
??? Мне надо просто увеличить время ожидание

Alex
24.09.2018
12:35:36
так поставь таймаут выше в nginx

или что там, puma

смотря кто вылетает

Black
24.09.2018
12:36:16
У меня nginx и puma

Alex
24.09.2018
12:36:30
У меня nginx и puma
а по таймауту кто из них вылетает?

Black
24.09.2018
12:36:43
Alex
24.09.2018
12:36:58
Как узнать?
запросить бэкенд напрямую и посмотреть отдаст он данные или улетит в таймаут?

Alex
24.09.2018
12:38:24
Отдаёт таймаут
https://github.com/puma/puma/blob/master/examples/config.rb#L179 Первая ссылка в гугле :)

Black
24.09.2018
12:38:39
А если не отдаёт таймаут?

Alex
24.09.2018
12:39:02
хоспади, что такое puma знаешь? ) что такое nginx знаешь? )

Google
Alex
24.09.2018
12:39:20
как оно работает знаешь?

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

И настраиваешь

Black
24.09.2018
12:41:50
Спасибо. "Мы вам перезвоним"

Alex
24.09.2018
12:42:16
они кстати оба по таймауту могут вылетать, настроишь один, а оказажется что теперь другой по своему вылетает.

Black
24.09.2018
12:43:44
Вот на локальном не вылетает ничего (в puma.rb нет речи о timeout), а на сервере да

Alex
24.09.2018
12:43:56
ну и смотришь на сервере кто из них вылетает

Black
24.09.2018
12:46:38
ну и смотришь на сервере кто из них вылетает
А как быть если скрипт будет работать 30 мин, а увеличивать таймауты на большое время не хорошее дело?

Alex
24.09.2018
12:47:02
Просто процессы работают долго, а у приложение как бы стоит ограничение на обратный ответ (1 минута)

дык уберите в очередь

и проверяйте статус в очереди

??? Мне надо просто увеличить время ожидание

хочешь сделать нормально - выноси в очередь

sidekiq например

Black
24.09.2018
12:52:08
sidekiq например
Это для тех задач, у кого нет ответа.

Alex
24.09.2018
12:52:30
https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP 102, 202

делаешь в базе статус "в обработке" и пускай клиент периодически дергает статус задачи

если не в обработке то получит конкретные данные.

Sidekiq для отложенных задач, а не тех у которых нет ответа. Кроме того не зная твой кейс сложно что то адекватное посоветовать.

Google
Alex
24.09.2018
12:56:43
Кроме него есть еще delayed job (вроде) который не требует редиса и работает через базу

Black
24.09.2018
12:57:02
Правильно говоришь

Tim
24.09.2018
12:57:48
поцоны, как тестят фикс вот такой ошибки: PG::QueryCanceled: ERROR: canceling statement due to statement timeout Запрос затаймаутился из-за слишком большого числа удаляемых штук

я знаю как пофиксить (через батчи), но как это тестить? убеждаться что удаляешь батчами?

или есть какие-то финты ушами

в идеале тест должен воспроизводить баг с прода, типа должен быть тест с большим числом этих штук

но наверное будет долго это исполняться

Alex
24.09.2018
13:16:24
я знаю как пофиксить (через батчи), но как это тестить? убеждаться что удаляешь батчами?
потестить что оно удалилось. Если при этом будет exception то тест сломается так и так

вот тоже хз как батчи тестить

Tim
24.09.2018
13:21:20
потестить что оно удалилось. Если при этом будет exception то тест сломается так и так
но типа создавать дохуя записей каждый раз в тестах ваще не оч

кстати в доках такое увидел Person.where("age > 21").in_batches do |relation| relation.delete_all sleep(10) # Throttle the delete queries end

Есть смысл в троттлинге?

Alex
24.09.2018
13:23:13
базу не перегружать и дать поработать другим запросам?

Tim
24.09.2018
13:24:47
понятно спс

Alex
24.09.2018
13:36:41
это предложение

просто такой батч потенциально может подтормозить базу и мешать другим запросам

Tim
24.09.2018
14:08:42
короче создал вопрос на стаковерфлоу: https://stackoverflow.com/questions/52481196/how-to-test-pgquerycanceled-due-to-timeout-error-in-a-rails-app

Ivan
24.09.2018
14:24:00
проблема же в том, что данных много

Tim
24.09.2018
14:25:16
ну баг на проде надо тестами покрывать по идее

Google
Tim
24.09.2018
14:25:19
ну да

Ivan
24.09.2018
14:25:57
ну так ты сейчас работу in_batches хочешь проверить?

Tim
24.09.2018
14:25:58
ты тестируешь тогда поведение своей аппликухи при больших данных

ну я и не знаю как надо

I would argue that you are only using Rails' methods and therefore should not test them. Especially because none of the methods actually fixes or avoids the exception. in_batches only makes the exception less likely to occur.

ну в моём виденьи это должно быть что-то типа тяжелого теста, который запускается только когда все остальные отработают

ну так ты сейчас работу in_batches хочешь проверить?
нет, я хочу чтобы при делите больших данных не падал запрос

Ivan
24.09.2018
15:06:09
нет, я хочу чтобы при делите больших данных не падал запрос
почему не вынести такую операцию в очередь?

Tim
24.09.2018
15:06:30
ну там sql запрос тупо по таймауту отлетает

я его разбил на меньшие с помощью in_batches

вот, но мне кажется надо все равно как-то протестить что больше не отлетает вся эта фигня по таймауту

вот

интересно, как это делают те, кто занимается хуйлоадом

на всякой scala и т.д.

Roman
24.09.2018
15:11:45
нагрузочное тестирование, не через rspec

Tim
24.09.2018
15:12:22
ааа

и это включено в ci?

Roman
24.09.2018
15:13:15
хз как где настроено

но highload и не крутится на обычных ci я так думаю

Страница 1470 из 1594