
ojab
27.05.2017
15:59:33
ruby-код будет испольняться только на одном ядре
кроме ruby-кода есть ещё io, которым по большей части обычни и заняты worker'ы
и это не мешает прибивать потоки к разным ядрам, ага

Neekoso
27.05.2017
16:04:57
Разговор шел о параллельном исполнении руби в MRI. Сейчас ты написал про io как отдельную часть ruby и все также безосновательно упомянул "прибивание к ядру" снова в контексте MRI

Google

Neekoso
27.05.2017
16:05:01
Где связь?

ojab
27.05.2017
16:06:34
нет, разговор шёл про параллельное выполнение. Про ruby-код в сообщениях выше ни слова. Параллельное выполнение подразумевает не только ruby-код.
ну и, в очередной раз, в подавляющем большинстве джоб (чем sidekiq и занимается) большпя часть исполнения — io

Neekoso
27.05.2017
16:20:10
Ты сбиваешь контекст. Изначально разговор шёл о том, что оптимальное количество потоков в sidekiq зависит от количества ядер. Я упомянул, что на их репозитории не нашел ни одного native extension, что подразумевает исполнение ruby кода, после чего увидел только странную реакцию. Уточнив про MRI, я откинул остальные реализации, но ты все равно доказываешь мне про многоядерность, понемногу сьезжая с темы про MRI.
IO в руби - обращение к системным вызовам интерпретатором при обработке руби кода, а сам по себе IO может влиять на многопоточность только в контексте блокировок, что нашей темы не касается


Igor
27.05.2017
17:17:25
во первых кто сказал что руби-код выполняется только на одном ядре?
он может выполняться на любом ядре
просто именно РУБИ код не выполняется одновременно из-за GIL
но если твой руби код внутри сайд-кик воркера
делает HTTP запрос например через curl
или висит на IO.select
то ничего не мешает выполнятся другому потоку с руби-кодом на совершенно другом ядре
открою тебе секрет - на практике GIL особо многопоточности в руби не мешает

Google

Egor
27.05.2017
17:20:45

Igor
27.05.2017
17:20:50
один хуй большая часть wallclock проводится в IO
там не было никакой реакции
просто человек полез в спор не разобравшись в сути вопроса

Artur
27.05.2017
17:27:45

Igor
27.05.2017
17:28:28

Артур
27.05.2017
17:28:57

Artur
27.05.2017
17:29:10
Не всю, только гига 3

Igor
27.05.2017
17:29:22
вангую редакторосрач

Egor
27.05.2017
17:29:25

ojab
27.05.2017
17:30:08
Ты сбиваешь контекст. Изначально разговор шёл о том, что оптимальное количество потоков в sidekiq зависит от количества ядер. Я упомянул, что на их репозитории не нашел ни одного native extension, что подразумевает исполнение ruby кода, после чего увидел только странную реакцию. Уточнив про MRI, я откинул остальные реализации, но ты все равно доказываешь мне про многоядерность, понемногу сьезжая с темы про MRI.
IO в руби - обращение к системным вызовам интерпретатором при обработке руби кода, а сам по себе IO может влиять на многопоточность только в контексте блокировок, что нашей темы не касается
ядра при исполнении sidekiq'а заняты не только sidekiq'ом. Банальный пример — sidekiq насилует БД, если у sidekiq один тред — БД упрётся в этот самый один тред, если тредов больше одного — БД будет утилизировать больше одного ядра. При этом sidekiq будет висеть в io и ничего не делать.

Артур
27.05.2017
17:30:37

Artur
27.05.2017
17:31:16

ojab
27.05.2017
17:31:26

Igor
27.05.2017
17:31:37

Artur
27.05.2017
17:32:02

Igor
27.05.2017
17:32:35

Artur
27.05.2017
17:32:39

Ivan Nets
28.05.2017
06:36:16
DarkNet - блог о темной стороне интеренета. @darknets

Google

Nikita
28.05.2017
08:55:01
кто работал с sidekiq-throttled? делаю все по докам, по идее должно все работать, но почему-то все джобы асинхронно выполняются... не работает лимит на время. https://gist.github.com/niks123123/b949984283439969dd5d626221b1db33
https://github.com/sensortower/sidekiq-throttled

Alexey
28.05.2017
09:17:09
Ого. А я свой велосипед делал для этих целей)

Nikita
28.05.2017
11:58:00
проблема была из-за того, что я использовал гем sidekiq-limit_fetch
они почему-то вместе не работают
но теперь другая проблема, возможно ли заставить джобы как-то выполняться в том порядке, в котором они были добавлены, а не асинхронно?

Vasiliy
28.05.2017
13:16:18
Посмотри queue job какие нить

Alex
28.05.2017
13:39:42
почему если я использую before(:all) то после выполнения spec база не очищается?
Удаляю базу - тест прогоняется - все ок, второй раз запускаю - email уже зарегистрирован
#spec/support/database_cleaner.rb
https://pastebin.com/9TXz1QUZ
https://pastebin.com/wqnAmghC
https://pastebin.com/UCmL6Nm0

Denis
28.05.2017
13:59:11
Привет. Кто знает ресурс где рассматриваются сложные вложенные запросы activerecord. На официальных гайдах об этом ни слова

Vasiliy
28.05.2017
14:02:59
Может потому что их пишут на голом сиквеле?
Если таки хочешь завернуть запрос в код то посмотри в сторону arel

Denis
28.05.2017
14:05:33
Просто как я понял мои запросы полное говно. Поэтому и хочу развиваться. А activerexord разве не предоставляет тако возможности

Nikita
28.05.2017
14:06:08
так, а что ты хочешь? на sql запросы фигачить?

Denis
28.05.2017
14:08:02
На active record хочу
https://gist.github.com/denisoster/0d91350008b06237a92d07f76b8f2f0b
то что имею сейчас
ну они дико не оптимальны. поэтому и хочу изучить лучше activerecord

Google

v
28.05.2017
14:30:32

Admin
ERROR: S client not available

Denis
28.05.2017
14:32:04
Звучит как-то дико. Думал все можно решить через active record

v
28.05.2017
14:32:34
будет выглядеть как говно

Alexander
28.05.2017
14:42:23
Гугли arel

ojab
28.05.2017
14:47:49
а в том что всё написано в один метод и непонятно как
(ну и про .collect в частности я тебе уже писал)
что произойдёт если всё фильтры есть? 4 раза мы получим результат и заиспользуем только последний?
(good=[], filter=[], model=[], brand=[], types_technologies=[]) wtf is this
зачем вообще дефолтное значение у этих аргументов?
ты в вызове этого метода не знаешь, какие аргументы есть и поэтому передаёшь всё подряд?
Good.where(...).collect(&:good_id) — очевидно дублирующийся кусок, почему он каждый раз open-coded?
ну и не мешает поставить rubocop и прогонять весь код через него

Denis
28.05.2017
14:53:57
Ну я прогонял через консоль. вроде нормально все фильтрует
Выводит все результаты как и должно
ojab Я верно заменил collect на select?

ojab
28.05.2017
14:57:45
нет

Google

Denis
28.05.2017
14:58:50
ну да

ojab
28.05.2017
14:59:07
ну и это должно делать тестами, чтобы вместо вопроса "Я верно заменил collect на select?" ты прогнал test suite и увидел, есть ли ошибки

Denis
28.05.2017
15:00:35
понял

Eugene
28.05.2017
19:07:53
Кто-нибудь на Railsclub собирается 23 сентября?

Artur
28.05.2017
19:09:09
Я. Но совпадут ли мои желания с моими возможностями большой вопрос.

Salim
28.05.2017
20:23:05
есть тут господа верстальщик ?
вопрос запивая после css чему обучаться js или можно как то сейчас рубки учить запитая ))
руби

v
28.05.2017
20:23:45
запивая?
тяжело тебе css дался

Диёр
28.05.2017
20:24:08
У js программиста работы больше, а у руби программиста денег

Salim
28.05.2017
20:24:16
)) запитая

v
28.05.2017
20:24:23