Size: a a a

2020 January 29

DS

Dmitriy Strukov in pro.ruby
Проще будет
источник

B

BENZ(29k/100k) 🎄🎄🎄 in pro.ruby
кк
источник

AI

Alex Ilizarov in pro.ruby
Он у тебя просит старый бандлер. С какой версией рубей твоя софтина работает?
источник

AI

Alex Ilizarov in pro.ruby
Я уже молчу о том что ты перепутал гемы bundler и bundle. Впрочем в обоих случаях то что надо ставится насколько я помню.
источник

AI

Alex Ilizarov in pro.ruby
В свежих рубях бандлер встроен в руби, вроде как.
источник

AI

Alex Ilizarov in pro.ruby
Но это бандлер второй версии.
источник
2020 January 30

VK

Vadim Kuzmin in pro.ruby
Звольская Ирина
хоть есть человек который розберается в этом
источник

k

kapkapbopoh in pro.ruby
Есть вопрос по sidekiq:
Всегда ли sidekiq вызывает .new у передаваемого в колбек класса?
Пример:

class Attack
 def initialize(a,b,c)
 end

 def start
   b = Sidekiq::Batch.new
   b.on(:success, Attack)
   b.jobs do
     job.perform_async
   end
 end

 def on_success(_, _)
   #
 end
end

На данный момент колбек вызывается как Attack.new.on_success
И из-за того, что взывыется .new падает с wrong number of arguments (given 0, expected 3)
источник

k

kapkapbopoh in pro.ruby
Из решений в голове:
1) добавить дефолтное значение аргументам в initialize
2) сделать отдельный класс - сайдик-воркер AttackJob который будет работать с колбеком и вызывать его в Attack
источник

AI

Alex Ilizarov in pro.ruby
kapkapbopoh
Есть вопрос по sidekiq:
Всегда ли sidekiq вызывает .new у передаваемого в колбек класса?
Пример:

class Attack
 def initialize(a,b,c)
 end

 def start
   b = Sidekiq::Batch.new
   b.on(:success, Attack)
   b.jobs do
     job.perform_async
   end
 end

 def on_success(_, _)
   #
 end
end

На данный момент колбек вызывается как Attack.new.on_success
И из-за того, что взывыется .new падает с wrong number of arguments (given 0, expected 3)
Слушай я тебе глупый вопрос задам, но что в твоем понимании тут коллбэк? Ты какую задачу делаешь?
источник

k

kapkapbopoh in pro.ruby
Колбек это запускаемый метод, когда все воркеры в батче завершились успешно)
источник

k

kapkapbopoh in pro.ruby
Задача: выполнить все воркеры ( могут быть вложенные ) и после успешного завершения всех этих воркеров подать сигнал сделать дальнейшее действие)
источник

AI

Alex Ilizarov in pro.ruby
kapkapbopoh
Задача: выполнить все воркеры ( могут быть вложенные ) и после успешного завершения всех этих воркеров подать сигнал сделать дальнейшее действие)
тебе это обязательно в текущем потоке делать?
источник

AI

Alex Ilizarov in pro.ruby
Я просто эту батчевую апиху первый раз в глаза вижу. Обычно сценарий работы с сайдкиком несколько другой.
источник

AI

Alex Ilizarov in pro.ruby
b.on(:success, Attack)

Ты уверен что он его дернет в этом же потоке?
источник

AI

Alex Ilizarov in pro.ruby
Если оно дергает его в этом же потоке то проверь нельзя ли передать текущий экземпляр класса через допустим self
источник

AI

Alex Ilizarov in pro.ruby
Если он его дергает не в текущем потоке то я тебе предлагаю все переписать так чтобы это было типичным кейсом работы с сайдкиком.
Условно AttackBatchJob, который дождется выполнения всех AttackJob и сам дернется
источник

AI

Alex Ilizarov in pro.ruby
Прикол в том что обычно есть:

rails <==> sidekiq
Каждый из них в своем процессе гоняет рубикод

Когда ты говоришь сайдкику что то сделать то он гоняет это в своем процессе, а не в рамках рельс. Он это может делать даже на другой машине по сути.
источник

AI

Alex Ilizarov in pro.ruby
Поэтому ты не можешь просто руби объекты туда передать, они сериализуются по возможности, и при выполнении десериализуются обратно.
источник

AI

Alex Ilizarov in pro.ruby
ну и работает все это соответственно не в контексте рельс. Даже пул подключений к базе у процесса sidekiq очевидно свой собственный.
источник