
Владимир
25.01.2018
19:48:37
Радости регистра?
Или радости двухбитных кодировок, для тебя может это и F а в реальности это две разные F

Aleksey
25.01.2018
19:50:39
та не, все F одинаковые, я сам данные вбиваю

Владимир
25.01.2018
19:50:58
Стоп. а ты как прогоняешь? Код можешь?

Google

Владимир
25.01.2018
19:51:11
Почему у тебя ограничение по 5 штук?
Откуда оно вылазит?

Aleksey
25.01.2018
19:51:28
я не знаю почему 5. я опытным путем выяснил это
юзаю для поиска гем Chewy
версия ES 5.6
поле:
field :suggest,
analyzer: 'simple',
value: ->(a) { a.name.present? ? a.name : NULL_NAME_PLACEHOLDER },
type: 'completion'

Владимир
25.01.2018
19:52:05
Ты пишешь что отбиваешь что то что находит тогда лишз норм фейсбук подтягивает...

Aleksey
25.01.2018
19:52:33
поиск:
MyIndex.suggest(
suggest: {
prefix: term,
completion: { field: 'suggest' }
}
)

Evgeniy
25.01.2018
19:52:38
и все

Владимир
25.01.2018
19:56:10
Паучье чутье подсказывает что где то лажа с параметрами. Оно ловит не все и как я понял даже не с первого вхождения. Ох уж эти гемы. Я с чеви слабо знаком, на уровне "где то видел" но лично не работал потому хз. Слишком мало сна, слишком много кода.

Aleksey
25.01.2018
19:58:02
да он просто пробрасывает параметры в ES , никакой магии )
кажется в другом чате помогли, добавил анализатор tokenizer+lowercase, варианты с 0.facebook ушли

Google

Roman
25.01.2018
21:14:26
смотреть как он видит твой запрос, смотреть, что на самом деле в базе
я через searchkick недавно настраивал, так пришлось самому анализаторы сетапить
правда у меня индекс получился на 60Гб ? но шопаделать

Philipp
25.01.2018
23:12:48
Приветы!
В рубях класс можно создать
Foo = Class.new do
def bar
end
end
так же в рубях можно "дописывать класс":
class Foo
end
class Foo
def bar
end
end
Вопрос: как дописывать класс руби, используя объектный синтаксис (.new) ?
или другими словами - как открыть блок с контекстом класса не только от .new ?

Иван
25.01.2018
23:47:20

Eugene
26.01.2018
06:01:48
Помогите плз с Dry validaiton.
Нужно, чтобы валидация срабатывала только, когда в массиве есть элементы. Сейчас с пустым массивом возвращается errors={:my_array=>["must be filled"]
schema = Dry::Validation.Schema do
optional(:my_array).filled(:array?) do
each do
schema do
required(:name).filled(:str?)
required(:value).filled(:str?)
end
end
end
end

Rustam
26.01.2018
07:14:45
maybe чекни в доке

Philipp
26.01.2018
07:15:35

ojab
26.01.2018
07:16:37
Foo = Class.new от class Foo ничем не отличается, создаётся константа Foo которая содержит экземпляр класса Class
(при первой декларации)

Philipp
26.01.2018
07:17:46

ojab
26.01.2018
07:17:48
class Foo после декларации позволяет переопределить что-то в этом объекте
oh my
тогда уж .define_* лучше, eval это не очень хорошо

Philipp
26.01.2018
07:19:31
но мне нужен был именно eval)

ojab
26.01.2018
07:20:01
вероятно ты что-то делаешь не так, значит

Philipp
26.01.2018
07:20:43
ну я действительно извращаюсь. вряд ли буду это юзать. эксперименты)
а именно - делаю обёртку для DryTransaction что бы можно было несколько шагов оборачивать в бд транзакцию
step :foo
wrap :bar do
step :baz
step :bazz
end

Google

Roman
26.01.2018
07:27:32

Максим
26.01.2018
07:30:59
пацаны почему может не запускаться джоб в рескью?

0x58
26.01.2018
07:37:32

Максим
26.01.2018
07:37:56
Resque.workers в консоли на сервере возвращает пустой массив

0x58
26.01.2018
07:38:39
значит нет, а рескью-админки нет у тебя? руками пробовал в консоли запускать?

Максим
26.01.2018
07:43:11
руками в консоли работает (через Resque.enque)
админки нет
а вот через код чёт не хочет но при этом ошибки не кидает

0x58
26.01.2018
07:44:45
имя очереди есть?
"Resque.enque" точно так писал? опечатка же

Максим
26.01.2018
07:46:46
Resque.enqueue(BuildExport, @export.id, params)
во
у меня 0

0x58
26.01.2018
07:47:58
попробуй еще запустить rake resque:workers QUEUE=* чтоб все очереди слушал
если не поможет запили скрин джоба что ли)

Максим
26.01.2018
07:49:24

0x58
26.01.2018
07:50:17
должно запустить воркеры, потом по pid легко прибиваются если что) безопасно
ну или при остановек resque тоже должны свернуться
и вообще как ты рескью стартуешь?

Google

Максим
26.01.2018
07:51:50
sophie@of:~/api$ rake resque:workers QUEUE=*
rake aborted!
Gem::LoadError: You have already activated rake 10.4.2, but your Gemfile requires rake 11.1.2. Prepending `bundle exec` to your command may solve this.
/home/sophie/api/config/boot.rb:3:in `<top (required)>'
/home/sophie/api/config/application.rb:1:in `<top (required)>'
/home/sophie/api/Rakefile:10:in `<top (required)>'
LoadError: cannot load such file -- bundler/setup
/home/sophie/api/config/boot.rb:3:in `<top (required)>'
/home/sophie/api/config/application.rb:1:in `<top (required)>'
/home/sophie/api/Rakefile:10:in `<top (required)>'
(See full trace by running task with --trace)

0x58
26.01.2018
07:52:44
чето bundle install видимо надо

Максим
26.01.2018
07:52:46
sophie@of:~/api$ bundle exec rake resque:workers QUEUE=*
/home/sophie/api/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.3/lib/action_dispatch/http/mime_type.rb:163: warning: already initialized constant Mime::PDF
/home/sophie/api/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.3/lib/action_dispatch/http/mime_type.rb:163: warning: previous definition of PDF was here
/home/sophie/api/app/models/user.rb:248: warning: circular argument reference - name
/home/sophie/api/app/models/user.rb:248: warning: circular argument reference - last_name
/home/sophie/api/app/models/user.rb:248: warning: circular argument reference - email
/home/sophie/api/app/models/user.rb:248: warning: circular argument reference - position
[DEPRECATION] :on_transition is deprecated, use :after instead
set COUNT env var, e.g. $ COUNT=2 rake resque:workers
просто обидка в том
что раньше всё работало
потом я поменял сериалайзер
и перестало


0x58
26.01.2018
07:56:06
Resque::Failure.all
в коносли попробуй, ошибки джобов посмотреть
говорит что еще надо "set COUNT env var, e.g. $ COUNT=2" кол-во воркеров указать: rake resque:workers QUEUE=* COUNT=2

Максим
26.01.2018
07:59:22
одна ошибка за вчера могу прикинуть что потому что ковырялся сидел а не то что я ищу
подошёл начальник сказал что сейчасу меня задача запустить воркеры не в бекграундном режиме чтоб увидеть ошибки
мы ща это делаем?

0x58
26.01.2018
08:00:48
нет, в resque есть inline режим, то есть в главном процессе исполнятся чтоб ошибки видеть

Максим
26.01.2018
08:01:31
запустил с 1
ничего не происходит
ну он выдал обычные ворнинги которые всегда выдаёт
и всё

Google

Максим
26.01.2018
08:02:02
промпта нет

0x58
26.01.2018
08:02:39
в resque.rb в инишиалайзерах inline включается Resque.inline = Rails.env.test? || Rails.env.development?
и redis то жив у вас вообще?

Максим
26.01.2018
08:04:28
ну в общем опять босс подошёл дал строчку походу нашёл ошибку

0x58
26.01.2018
08:05:01
расскажи хоть)

Anton
26.01.2018
08:18:20

Максим
26.01.2018
08:19:10
расскажи хоть)
да считай то же саоме ток дополнителные параметры типа пид и прочее
RAILS_ENV=production PIDFILE=./resque.pid VERBOSE=1 COUNT=1 QUEUE=* bundle exec rake environment resque:workers

Philipp
26.01.2018
08:29:20
хотя с таким расширением я могу обернуть несколько шагов, а не все сразу.

Anton
26.01.2018
08:31:51
Звучит как-то странно

Philipp
26.01.2018
08:32:07
неа, все не надо
tee :a
step :b
tee :c
wrap :transaction do
map :e
step :f
end
теперь могу сделать так) но вряд ли такое расширение одобрят.

Anton
26.01.2018
08:34:01
Так ещё раз, ты это можешь сделать через кастомный шаг
Без расширения чего либо

Philipp
26.01.2018
08:37:50
А разве получится кастомный шаг сделать оберткой для нескольких шагов?

Anton
26.01.2018
08:41:04
Не уверен на 100%, но почему бы не попробовать

Philipp
26.01.2018
08:41:08
Сейчас я определил метод wrap, который создаёт новый класс с транзакцией и новый step, в котором позволяет вызвать эту транзакцию