@rubylang

Страница 1424 из 1684
Andrey
14.03.2018
08:16:19
в базу хожу и пишу

ojab
14.03.2018
08:16:35
ну вот

Если интересно сколько/откуда конкретно — dtrace/perf в руки и см. http://www.brendangregg.com/offcpuanalysis.html

Andrey
14.03.2018
08:20:02
ок, спасибо, поразбираюсь

Google
Nursultan
14.03.2018
09:04:02
Всем првиет. у меня следующая ситация. есть модель User создана по devise. Есть модель Project. User может создать project и соответственно project принадлежит user. но есть так же модель interest. Интерес это когда второй пользователь может нажать мне интересно по отношению к project созданному первым пользователем. вопрос

можно ли писать так

class Project < ApplicationRecord belongs_to :user has_many :interests has_many :users, through: :interests end

типа проект принадлжеит юзеру и имеет много своих юзеров через интересы

ojab
14.03.2018
09:08:57
почему нет?

Lavrushchik
14.03.2018
09:12:23
с gmaps4rails работал кто?

Антон
14.03.2018
09:17:07
вопрос сразу спрашивай

biert
14.03.2018
10:59:44
Приветствую Господа, есть вопрос, гугл долгое время но толковой информации не нашел, ну или рабочей, есть задача запускать автоматически delayed_job после ребута, или если он сам упадет, план был использовать monit, добавить специальный файлик и он сам будет рулить этим, но не получается, пытался делать в init.d sh скрипт, он работает но monit не воспринимает его адекватно и думает что процесс не запустился, как вы решали подобное?

Vasiliy
14.03.2018
11:00:46
systemd

biert
14.03.2018
11:01:24
находил и с этим статью

https://singlebrook.com/2017/10/23/auto-restart-crashed-service-systemd/

Vasiliy
14.03.2018
11:02:32
самое по моему простое что можно использовать

находил и с этим статью
не получилось или не пробовал?

Google
biert
14.03.2018
11:05:32
пока не пробовал, то есть если создать директорию delayed_job.service.d в /etc/systemd/system/ а в нем файлик restart.conf с указаным там содержимым то оно будет работать?

я не совсем понял как оно работает и как будет знать какие команды использовать для запускать или остановки сервиса

или оно работает через файлик что я уже создал в /etc/init.d/delayed_job

по выхлопе там видно что скорее всего да

ShadoWalkeR
14.03.2018
11:07:30
А просто на systemd service файл переписать не вариант?

Просто подпирать один костыль (сгенерированный service) другим костылем - куском service файла, который должен быть не очень идея

Просто если этому delayed_job.service.d/restart.conf прописать секции [Install] и [Unit]. то его можно будет положить в /etc/systemd/system/ как delayed_job.service и дропнуть init скрипт

biert
14.03.2018
11:09:54
тыкните пожалуйста где почитати о том чтобы переписать

сейчас попытался по гайду тому сделать, получаю $ sudo systemctl start delayed_job Job for delayed_job.service failed because a configured resource limit was exceeded. See "systemctl status delayed_job.service" and "journalctl -xe" for details.

ShadoWalkeR
14.03.2018
11:10:58
Посмотрите другие service файлы - чтото должно быть в системе уже

И да - смотрите в логи

biert
14.03.2018
11:11:16
спасибо

ShadoWalkeR
14.03.2018
11:11:17
Там же написано как

biert
14.03.2018
11:43:54
кажись сделал

то есть если я сделал сервис в systemd то уже не нужно добавлять это в monit

ShadoWalkeR
14.03.2018
11:49:24
Зависит от того что вы хотели monitом сделат

biert
14.03.2018
12:01:21
еще можете подсказать, pid файл delayed_job он создается только когда запущен демон?

No
14.03.2018
12:31:06
Ребята, не подскажете, где можно понятно почитать, как WebSocket работает на низком уровне? Интересует нюансы в стиле "Что является WebSocket Connection-ом?". К своему стыду, гуглю уже битый час (включая поиск по WebSocket спецификации), однако целостную картинку никак в голове составить не могу

Полно материала как сделать чтобы они работали, и мало материала о том, как же всё-таки они работают

Google
No
14.03.2018
12:37:04
Скачай и прочитай RFC
Сейчас читаю, пока по прежнему не нашёл ответов на свои вопросы

Но пока не актуально, нашёл материал

Возможно он мне поможет

ShadoWalkeR
14.03.2018
12:38:33
Ну может по WS так RFC написан - я по SIP обычно читаю - там достаточно подробно изложено)

Roman
14.03.2018
12:38:53
а что конкретно непонятно? это просто протокол, как http, по которому общаются сервер и клиент

вот норм статья https://learn.javascript.ru/websockets

No
14.03.2018
12:40:27
Сейчас объясню, что непонятно, попытаюсь сформулировать вопросом

1. У нас есть URL для handshake. 2. Клиент засылает запрос на connection. 3. Сервер создает WebSocket connection и засылает респонс. 4. Чем является этот WebSocket connection? На низком уровне я имею ввиду.

Я имею ввиду, что это такое? Где прочитать, как оно работает?

No
14.03.2018
12:47:28
https://en.wikipedia.org/wiki/WebSocket suddenly
Так. Круто. Работает over single TCP connection

ShadoWalkeR
14.03.2018
12:47:29
Roman
14.03.2018
12:47:34
на сколько низком уровне?) ws работает поверх tcp, следовательно это просто пакеты данных

No
14.03.2018
12:48:01
Сек. Сейчас будет глупый вопрос

ojab
14.03.2018
12:48:18
ну и есть вероятность что у гугла веб-сокеты работают поверх quic/udp, но это нестандартно

No
14.03.2018
12:48:25
На каждый WebSocket Connection создается отдельный TCP? Да/нет?

ShadoWalkeR
14.03.2018
12:48:26
Пардон - у меня уже просто мозги кипят под вечер и надо как то расслабиться ?

ojab
14.03.2018
12:48:52
да, создаётся

Google
No
14.03.2018
12:49:07
Для каждого TCP-конекшена нужен отдельный порт? Да/нет?

ojab
14.03.2018
12:49:14
но обычно создают одно соединение и всё шлют через него

для каждого tcp-коннекшна нужен уникальный кортеж [src_ip, src_port, dst_ip, dst_port]

No
14.03.2018
12:50:31
но обычно создают одно соединение и всё шлют через него
Воооооооооооот. Итак. На все вебсокеты у нас ОДИН TCP-connection. Интересует алгоритм, как сервер шлёт данные конкретному юзеру, при этом используя один дуплексный TCP?

Вот к этому вопросу я примерно и вёл, не знал как сформулировать

Я где-то туплю

Но не пойму где

Vasiliy
14.03.2018
12:51:50
собсно а зачем это знать?

Roman
14.03.2018
12:53:00
так до tcp включительно все точно также, как и с http

это такие же пакеты, только сервер и клиент не закрывают сразу соединение, там идет проверка ping/pong все дела

No
14.03.2018
12:56:07
собсно а зачем это знать?
1. Дискуссия. 2. Хочу знать, какие ресурсы используются при использовании сокетов чтобы понимать от чего зависит колличество одновременных соединений

ShadoWalkeR
14.03.2018
12:56:15
TCP нужен только чтобы доставить пакеты от компьютера А к Б. А дальше между пользователями уже на уровне выше разруливаться должно

Кортеж нужен, когда у нас одно приложение открывает несколько соединений - чтобы идентефицировать какие пакеты от кого кому передавать

Это в схемах OSI и TCP/IP описано

Верней так - кортеж [src_ip, src_port, dst_ip, dst_port] используется всегда. Просто в случае одного соединения раскидывания по пользователям идет уровнем выше.

ojab
14.03.2018
12:59:21
т. е. до браузера конкретного юзера и по кукам/etc сервер узнаёт, что это за юзер

от обычного HTTP в этом плане ничем не отличается

ShadoWalkeR
14.03.2018
13:00:41
Там если в пакет TCP заглянуть все что связано в websocket в секции данных. В заголовках только транспортная информация - от какого порта какому порту между какими IP передать сообщение

Google
ShadoWalkeR
14.03.2018
13:04:01
Почитайте про OSI - там механизм очень хорошо расписан как через уровни проходит пакет. Хоть и применяется везде схема tcp/ip а не OSI, но разница только в том, что три верхних уровня объединили

Roman
14.03.2018
13:04:24
ну да, это уже все на уровне tcp определено, ws не имеет к этому отношения. Как я понимаю, вся суть в постоянной проверки связи посредствам ping/pong, которые по сути являются обычными запросами

No
14.03.2018
13:08:28
Так, пытаюсь парсить. Только что понял, что я сильно плаваю в подобной теории

Сегодня вечером буду просвящаться, курить RFC

Тогда два практических вопроса, максимально глупых пожалуй, ибо на них пытался получить ответ в процессе инвестигейта

1. Нужно ли на сервере открыть все порты? Нужно ли для каждого WebSocket Connection-а иметь один конкретный порт? Уже понял, что нет, но подтвердите/опровергните плиз

2. От чего зависит колличество connections, которое мой сервер может поддерживать?

ojab
14.03.2018
13:11:55
нет, websocket'ы устанавливаются как http[s] соединение на соответственный порт и потом апгрейдятся до websocket-соединения, при этом порты не меняются.

количество зависит от мильона параметров

Vasiliy
14.03.2018
13:13:12
порт же вроде переключается, не?

ojab
14.03.2018
13:13:56
не, зачем?

со стороны клиента порт другой, само собой (если это не апгрейд http/2), со стороны сервера — тот же

Roman
14.03.2018
13:17:13
все точно также как и с http, клиент изначально стучится в tcp сокет по ip и порту, потом уже идет разница в протоколах

No
14.03.2018
13:17:25
Для tcp connection-а должен быть уникален следующий кортеж: [src_ip, src_port, dst_ip, dst_port]. Если одному и тому же браузеру нужно несколько коннекшенов к одному серверу и порту - браузер использует другой клиентский порт

Всё верно?

ojab
14.03.2018
13:20:19
да

No
14.03.2018
13:41:40
Окей, спасибо. Вообще всем спасибо за помощь, нирвана/дзен/понимание по данному вопросу достигнуто )

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