Задать вопрос
Знаю ruby (rails, sidekiq, eventmachine), javascript (coffescript, backbone, marionette, react), sql (postgres), линуксы (gentoo, debian, ubuntu, opensuse), когда-то изучал asm, с/с++, c#, java.
Контакты

Достижения

Все достижения (10)

Наибольший вклад в теги

Все теги (42)

Лучшие ответы пользователя

Все ответы (39)
  • Как умело работать с Sidekiq и очередями?

    mainameiz
    @mainameiz
    Full-stack web-developer
    Очереди это, как уже сказал bmalets, что-то вроде списков задач. Они нужны в основном для управлением нагрузкой, параллельностью. По дефолту есть только очередь default.

    Классический пример разделения очередей:
    - mailer - очередь для рассылки почтовых сообщения пользователям
    - default - для всего остального

    Можно сделать так что для очереди mailer вы запускаете 10 процессов (не воркеров, а именно процессов ОС), а для default только 1. Тем самым вы делаете приоритетной очередь mailer.
    Распределением нагрузки можно также управлять с помощью "весов" (параметр -q mailer,9 default,1 ). В данном случае из 10 задач 9 будут взяты из очереди mailer и только одна из очереди default.

    Под воркерами могут подразумеваться два понятия:
    - воркер как процесс ОС который берет задачи из очередей на выполнение
    - воркер как класс руби, который выполняет какую-то бизнес-задачу

    В основном конечно же под воркерами подразумевается второй вариант.

    По вашим вопросам:
    - как воркеры исполняются?
    Процесс-обработчик берет задачу из redis и выполняет её. Тут важно понимать, что при аварийном завершении работы процесса вы можете потерять задачу (такие кейсы бывают очень критичными для бизнеса).

    - какой обьём памяти для этого нужен?
    Объем данных в redis'е можно посмотреть в админском интерфейсе.

    - почему redis

    Кто знает...

    - как это работает с redis
    ???

    - почему в perform_async нельзя передовать сами обьекты? а только id, strings, json ...?
    Можно, но не нужно. Все что попадает в perform_async должно попадать в redis. А это накладные расходы на хранение, сериализацию/десериализацию.

    - Как правильно вызывать и добавлять очереди.
    Что вы имели ввиду под "вызывать очереди"? Очереди добавляются автоматически
    Вообще формат хранения можно запросто посмотреть в самом редисе.
    Ответ написан
    1 комментарий
  • Как сделать простой single page application?

    mainameiz
    @mainameiz
    Full-stack web-developer
    gem react-rails умеет рендерится на сервере и на клиенте
    Ответ написан
    2 комментария
  • Почему mithril, vue, virtual-dom быстрее react?

    mainameiz
    @mainameiz Автор вопроса
    Full-stack web-developer
    Кажется нашел ответ на свой же вопрос. Вкратце - у react.js не самая хорошая реализация dom-дерева. staltz.com/dont-react/#
    Ответ написан
    Комментировать
  • Какая коммерческая выгода от создания языков программирования?

    mainameiz
    @mainameiz
    Full-stack web-developer
    Считаю что у всех по-разному. Действительно free (такие как руби, питон) делаются просто на энтузиазме, может быть в научных целях. А например java/c# делаются корпорациями с целью иметь свои личные инструменты и не зависеть от других корпораций. Ну и ruby например еще очень далеко до промышленных языков даже по инструментарию который они предлагают
    Ответ написан
    Комментировать
  • Существует ли в Ruby двойная интерполяция?

    mainameiz
    @mainameiz
    Full-stack web-developer
    Так не сработает. Интерполяция это просто синтаксический сахар. Вам нужно свой ввод прогонять через eval.
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (22)