
Lupsick
15.02.2017
22:26:27
def self.publish(message, type)
x = channel.direct(@@queue_name, auto_delete: true)
q = channel.queue(@@queue_name, durable: true, auto_delete: false)
q.bind(x)
x.publish({name: @@task_name, type: type, data: message}.to_json, persistent: true)
channel.close
connection.close
end
def self.channel
@channel ||= connection.create_channel
end
def self.connection
@conn ||= Bunny.new(Rails.configuration.rabbitmq['amqp']).tap { |c| c.start }
end
class Publisher
extend self
def publish(queue, message)
q = channel.queue(queue, :durable => true)
q.publish(message)
end
def channel
@channel ||= connection.create_channel
end
def connection
@connection = Bunny.new :host => ENV['RABBITMQ_HOST'],
:user => ENV['RABBITMQ_DEFAULT_USER'],
:password => ENV['RABBITMQ_DEFAULT_PASS']
@connection.start
end
end

Alexander
15.02.2017
22:26:31

Alan
15.02.2017
22:26:49

Lupsick
15.02.2017
22:27:06
> x = channel.direct(@@queue_name, auto_delete: true)
вот это вообще какая-то дичь

Google

Alexander
15.02.2017
22:27:21
?
ну почитай что такое event-loop, event-machine
это некое решение очереди в синхронном выполнении кода

Alan
15.02.2017
22:27:52
Я имел ввиду что там нет многопоточности и соответственно нет event-loop

Alexander
15.02.2017
22:28:06

Alan
15.02.2017
22:28:18
блин так асинхронность работает из очередей- вот я нубас....
я думал там многопоточность реализована....

Alexander
15.02.2017
22:31:32

Alan
15.02.2017
22:31:48

Lupsick
15.02.2017
22:31:56
event-loop не связано с очередями по сути

Alexander
15.02.2017
22:32:04
многопоточность по сути влияет на то, может ли у тебя разные участки кода разными ядрами процессора обрабатываться в один момент времени, или нет

Google

Lupsick
15.02.2017
22:32:35
там хэши
в do while

Alexander
15.02.2017
22:32:54
много значений просто, даже в том же руби

Alan
15.02.2017
22:33:02

Lupsick
15.02.2017
22:33:03
словарь

Alexander
15.02.2017
22:33:20
словарь
и как он влияет на два параллельных запроса, например?

Lupsick
15.02.2017
22:33:42

Alexander
15.02.2017
22:33:51
никак
ну тогда… что-то где-то не то

Lupsick
15.02.2017
22:34:05
по идее в каждом процессе свой event-loop

Alexander
15.02.2017
22:34:12

Lupsick
15.02.2017
22:34:19
один event-loop тогда лол

Alexander
15.02.2017
22:34:37
при паузе, например

Lupsick
15.02.2017
22:34:45
сомневаюсь
они же параллельные

Alan
15.02.2017
22:35:02
для руби

Google

Alan
15.02.2017
22:35:57
вот это уже будет многопоточность

Alexander
15.02.2017
22:36:48

Alan
15.02.2017
22:36:55
но и очереди в потоках две и свои.

Alexander
15.02.2017
22:37:04
а одно ядро проца не сможет выполнять две команды в один момент времени

Alan
15.02.2017
22:37:13

Alexander
15.02.2017
22:37:14
а два ядра — смогут. и это уже труъ-многопоточность

Alan
15.02.2017
22:37:41
получается та либа реализована по event-loop модели?

Alexander
15.02.2017
22:45:14

Alan
15.02.2017
22:47:03
Ага, уже)

Alexander
15.02.2017
22:49:08
там блок кода (прок)
выполняется почти реал-тайм
если несколько сообщений было в оффлайне — то несколько раз
вряд ли параллельно, конечно, но какой-то механизм тип event-loop, long poll (вряд ли) или thread есть
хотя может и long-poll, чёрт его знает. но это некий размазанный по сети event-loop
вк просто на long-poll работает, телеграм уж не помню, но любая реализация (хоть через сокеты) выглядит очень похоже, просто на более высоком или низком уровне (http или своё на tcp)
@Duiesel ну вот, ты хоть и новичок, но быстро рубишь, хорошие вопросы задаёшь, исходники смотришь. приятно общаться.

Alan
15.02.2017
23:06:54

Dmitriy
16.02.2017
09:41:12
есть у кого решение вложенных ктаегорий?
категории внутри категорий

Alexander
16.02.2017
09:42:20

Google

Dima
16.02.2017
09:42:29

Dmitriy
16.02.2017
09:49:07
@AlexWayfer если подсказать нечего, просьба не реагировать

Alexander
16.02.2017
09:50:04

Dmitriy
16.02.2017
09:50:16
в том то и дело, гуглилось

Ilya
16.02.2017
09:50:23

Dmitriy
16.02.2017
09:50:49
обратиться сюда, последнее дело

Ilya
16.02.2017
09:51:26
google:
jquery nested categories
тадааам

Admin
ERROR: S client not available

Dmitriy
16.02.2017
09:51:48
мне интересно, как реализовать это в модели

Ilya
16.02.2017
09:51:49
155 000 результатов

Alexander
16.02.2017
09:51:54

Ilya
16.02.2017
09:52:42
parent_id
и ассоциацию пилишь

Alexander
16.02.2017
09:53:07
гуглить на русском или в яндексе точно не советую, это не очень подходит для айти-вещей

Dmitriy
16.02.2017
09:53:10
хм, надо попробовать, сейчас попробую

Ilya
16.02.2017
09:56:48
блять, такое чувство, что я на другой планете живу
https://github.com/collectiveidea/awesome_nested_set

Google

Ilya
16.02.2017
09:57:06
сука, есть ГЕМ, мать его
я гуглил
я гуглил

Dmitriy
16.02.2017
09:57:34
я пробовал этот гем
тут же в чате
мне его не советовали

I
16.02.2017
09:57:51
а что еще ты пробовал?

Dmitriy
16.02.2017
09:58:21
пробую теперь вариант с parent_id

kolas
16.02.2017
09:59:02
https://github.com/mceachen/closure_tree

Dmitriy
16.02.2017
10:00:17
@kolaz спасибо!

Ilya
16.02.2017
10:01:20
https://github.com/stefankroes/ancestry

Alexander
16.02.2017
10:01:47

Ilya
16.02.2017
10:02:02
http://railscasts.com/episodes/262-trees-with-ancestry?autoplay=true

Evgeny
16.02.2017
10:06:16

Ivan
16.02.2017
11:17:27
Кто работал в реальных проектах с rabbitmq?

Evgeniy
16.02.2017
11:48:45

Ivan
16.02.2017
11:53:22
Ошибки:
cannot use a channel that was already closed! Channel id: 1
не возникало?
время от времени возникает, не пойму причину
т.е. когда-то я спокойно 10 сообщений могу отправить, а когда-то на 3ем возникает, когда-то на втором..

Evgeniy
16.02.2017
12:05:23

Dima
17.02.2017
06:38:54
Коллеги, я так понял bundler для разворачивания песочницы.
На системе 5 разновидностей гема:
gem list ^rails$
выхлоп: rails (5.0.1, 5.0.0, 4.2.6, 4.2.3)
в приложении нужно использовать какой-то опредленный пусть будет 4.2.6
Для этого используется bundler чтоб в файле Gemfile однозначно указать какие гемы будут исполззованы в для запуска данного скрипта.
bundler exec ruby filename.rb запускает filename.rb с использованием тех гемов которые указанны в Gemfile