@rubylang

Страница 1034 из 1684
Aleksey
26.05.2017
15:25:39
https://ruby-doc.org/core-2.4.1/Kernel.html#method-i-test

Василий
26.05.2017
15:26:47
o.private_methods.include? :test => true

Vasiliy
26.05.2017
15:28:25
безопаснее же юзать public_send

Eugene
26.05.2017
15:29:39
безопаснее же юзать public_send
так и сделаю спасибо

Google
Denis
26.05.2017
15:36:05


Артур
26.05.2017
15:36:54
че по типам полей?

Denis
26.05.2017
15:37:26
Какаю именно миграцию сбросить?

Vasiliy
26.05.2017
15:38:13
у тебя PG на русском пишет?

rails db:rollback

Denis
26.05.2017
15:38:59
По всей видимости

Aleksey
26.05.2017
15:40:28
По-русски это мощно, гуглить особенно удобно

Denis
26.05.2017
15:40:49
Ничего нагуглить не смог

ojab
26.05.2017
15:42:16
ну и очевидно что types_technologies.name у тебя String/varchar, а types_technologies.id (который ты subselect'ишь) — int

и pg не может искать varchar в результате subselect'a

Denis
26.05.2017
15:43:51
https://gist.github.com/denisoster/6a11963a8dd49b065c014a9cfaf24160

Мой запрос неверный?

Google
ojab
26.05.2017
15:45:26
смотря что ты хотел сделать в запросе

Denis
26.05.2017
15:45:47
def search_catalogs(params) search_types_technology = TypesTechnology.where(name: types_technologies) search_model = Model.where(model_id: search_types_technology.select(:id)) search_brand = Brand.where(id: search_model.select(:brand_id)) end

ojab
26.05.2017
15:45:59
оуч

меняй collect'ы на .select(:whatever) для начала

Denis
26.05.2017
15:47:15
так? я отредактировал сообщение

ojab
26.05.2017
15:47:24
потому что каждый collect достаёт данные из БД на уровень приложения и делает ещё один sql-запрос, с select'ами это всё выполнится одним sql-запросом

нет, не так

Denis
26.05.2017
15:48:43
А как верно?

ojab
26.05.2017
15:49:13
или почитать документацию, или более внимательно сравнить моё сообщение с тем, что у тебя написано

ну и непонятно откуда у тебя types_technologies в методе берётся. Прозреваю что там у тебя что-то в духе TypeTechnology.where(x: y).select(:id) и как раз в этом проблема.

Denis
26.05.2017
15:54:52
да так и есть



Не могу понять почему этот не работает если анологичй работает. хоть да он использует collect что не верно

unless types_technologies==[] or types_technologies==[""] search_good = Good.where( id: ModelsGood.where( model_id: Model.where( types_technology_id: TypesTechnology.where( name: types_technologies ).collect(&:id) ).collect(&:id) ).collect(&:good_id) ) end

Василий
26.05.2017
16:10:58
select(:id) => .ids select(:brand_id) => pluck(:brand_id) Попробуй

ojab
26.05.2017
16:12:27
зачем?

падает раньше

Akamit
26.05.2017
17:49:27
подскажите пожалуйста как можно сделать truncate модели?

я бы сделал через ActiveRecord::Base.connection.execute("TRUNCATE xxxx"), но у меня такая модель: class Card < ActiveRecord::Base establish_connection adapter: "mysql2", database: "baikal", username: "baikal", password: "baikal" end

ojab
26.05.2017
17:52:49
Card.connection.execute

Google
Akamit
26.05.2017
18:57:44
Nikita
27.05.2017
12:15:47
ребят, кто с сайдкиком плотно работал, какое значение concurrency максимальное вы использовали?

Don't set the concurrency higher than 50. I've seen stability issues with concurrency of 100, for example.

кто-то пробовал более 50?

ojab
27.05.2017
12:23:27
но зачем?

очевидно что кто-то пробовал, если об этом пишут

Igor
27.05.2017
12:25:49
Те если у тебя 24 ядра

То смело ставь 48 :)

Nikita
27.05.2017
12:26:38
ну это все понятно, но если я правильно понял, то concurrency ограничивает кол-во одновременно выполняемых воркеров, верно?

Nikita
27.05.2017
12:27:11
а кол-во одновременно выполняемых воркеров как настраивается?

Nikita
27.05.2017
12:28:07
ну джоб, точнее

Igor
27.05.2017
12:28:11
Кол-во процессов штоле?

Nikita
27.05.2017
12:28:15
да

Igor
27.05.2017
12:29:05
Не очень понятно зачем это для сайдкика

Вроде эта фича есть только в сайдкик про

Не очень прнятно чего ты хочешь добиться

У меня дикий опохмел, поэтому могу туго соображать :)

Google
Nikita
27.05.2017
12:30:54
ну суть в том, что допустим есть джоб штук 100, 1 джоба выполняется не быстро, скажем 20 минут, но суть в том, что джобы для 1 пользователя работают синхронно, а между пользователями асинхронно, вот поэтому и спрашиваю

сама по себе джоба будет работать с файлами и API

Nikita
27.05.2017
12:32:43
я так и делаю

на queue ставлю .limit

Igor
27.05.2017
12:33:04
А дальше будет гемморой

Nikita
27.05.2017
12:33:07
посредством sidekiq-limit_fetch

ну я так понимаю, что в sidekiq 1 джоба делается в 1 поток?

Admin
ERROR: S client not available

Nikita
27.05.2017
12:48:51


ну да, я поставил :concurrency: 20, создал 25 джоб, но выполняются активно только 20

ojab
27.05.2017
13:38:00
если одна джоба выполняется 20 минут — надо что-то делать с джобой

Nikita
27.05.2017
13:39:24
да, спасибо

ojab
27.05.2017
13:44:32
и что решили?

Igor
27.05.2017
13:46:43
и что решили?
Человеку нужен был sidekiq-throttled

Neekoso
27.05.2017
14:56:26
Сайдкик - нативное расширение?

ojab
27.05.2017
14:57:53
google://sidekiq

Neekoso
27.05.2017
15:11:55
Или я совсем плохо искал, или у них на гите ни слова про native extensions, разве что фраза "sidekiq workers are sent to a multithreaded process". + одни .rb файлы в lib/

Google
v
27.05.2017
15:17:53
вот и ответ

Neekoso
27.05.2017
15:19:18
Тогда при чем тут количество ядер * 2 при расчете оптимального количества задач, если руби на одном ядре исполняется?

Артур
27.05.2017
15:20:33
друзья, коллега собирается брать для ruby/rails разработки макбук 13 2015, там-ж двуядерный проц и 8 гб рам есть у кого опыт работы за таким железом? отговаривать или нет?

Neekoso
27.05.2017
15:30:11
Неоднократно читал, что в MRI нет реального параллелизма, не понимаю к чему такая реакция

v
27.05.2017
15:32:44
угадай, на скольки ядрах он исполняется?

ojab
27.05.2017
15:36:59
Неоднократно читал, что в MRI нет реального параллелизма, не понимаю к чему такая реакция
wtf реальный параллелизм? GIL в MRI не мешает параллельности в большинстве джоб (где много io).

Neekoso
27.05.2017
15:37:44
ojab
27.05.2017
15:38:07
mkay, это никак не уточнило утверждение.

делаешь 4 треда @ прибиваешь каждый к своемус ядру. 4 треда параллельно выполняются на 4 ядрах.

Neekoso
27.05.2017
15:39:48
"Прибиваешь каждый к своему ядру" в MRI?

ojab
27.05.2017
15:40:12
да

современные операционные системы позволяют прибивать треды к ядрам вне зависимости от процесса эти треды породившего

Neekoso
27.05.2017
15:41:00
в документации, которую ты якобы читал, упомянут JRUby
"Supports CRuby and JRuby" мною трактовалось, как "также поддерживает".

современные операционные системы позволяют прибивать треды к ядрам вне зависимости от процесса эти треды породившего
Какой-то линк к тому, что это работает в MRI можно? Везде, при упоминании MRI и multicore processing указано, что это не поддерживается.

ojab
27.05.2017
15:46:18
google://MRI+GIL

и читай в каких случаях GIL действительно мешает выполнению

(в много потоков)

в реальности это непрерывные вычисления в много потоков, чем на ruby вряд ли стоит заниматься (ибо медленно безотносительно многопоточности)

Страница 1034 из 1684