@prophp7

Страница 1261 из 1387
Денис
15.08.2018
13:46:20
угу

русский перевод на хабре пойдет? или там неправильно все перевели?



Maksim
15.08.2018
13:47:01
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!') print " [x] Sent 'Hello World!'"

Google
Maksim
15.08.2018
13:47:05
ну как тебе сказать...

подойдёт

Денис
15.08.2018
13:47:20
channel.queue_declare(queue='hello')

Maksim
15.08.2018
13:47:33
zTrue 16 августа 2012 в 13:26 RabbitMQ tutorial 1 — Hello World Разработка веб-сайтов, Python Из песочницы Tutorial RabbitMQ позволяет взаимодействовать различным программам при помощи протокола AMQP. RabbitMQ является отличным решением для построения SOA (сервис-ориентированной архитектуры) и распределением отложенных ресурсоемких задач. Под катом перевод первого из шести уроков официального сайта. Примеры на python, но его знание вовсе не обязательно. Аналогичные примеру программы можно воспроизвести практически на любом популярном ЯП. [так выглядят комментарии переводчика, т.е. меня] Вступление RabbitMQ ‒ это брокер сообщений. Его основная цель ‒ принимать и отдавать сообщения. Его можно представлять себе, как почтовое отделение: когда Вы бросаете письмо в ящик, Вы можете быть уверены, что рано или поздно почтальон доставит его адресату [видимо, автор ни разу не имел дела с Почтой России]. В этой аналогии RabbitMQ является одновременно и почтовым ящиком, и почтовым отделением, и почтальоном. Наибольшее отличие RabbitMQ от почтового отделения в том, что он не имеет дела с бумажными конвертами ‒ RabbitMQ принимает, хранит и отдает бинарные данные ‒ сообщения. В RabbitMQ, а также обмене сообщениями в целом, используется следующая терминология: Producer (поставщик) ‒ программа, отправляющая сообщения. В схемах он будет представлен кругом с буквой «P»: Queue (очередь) ‒ имя «почтового ящика». Она существует внутри RabbitMQ. Хотя сообщения проходят через RabbitMQ и приложения, хранятся они только в очередях. Очередь не имеет ограничений на количество сообщений, она может принять сколь угодно большое их количество ‒ можно считать ее бесконечным буфером. Любое количество поставщиков может отправлять сообщения в одну очередь, также любое количество подписчиков может получать сообщения из одной очереди. В схемах очередь будет обозначена стеком и подписана именем: Consumer (подписчик) ‒ программа, принимающая сообщения. Обычно подписчик находится в состоянии ожидания сообщений. В схемах он будет представлен кругом с буквой «C»: Поставщик, подписчик и брокер не обязаны находиться на одной физической машине, обычно они находятся на разных. Hello World! Первый пример не будет особо сложным ‒ давайте просто отправим сообщение, примем его и выведем на экран. Для этого нам потребуется две программы: одна будет отправлять сообщения, другая ‒ принимать и выводить их на экран. Общая схема такова: Поставщик отправляет сообщения в очередь с именем «hello», а подписчик получает сообщения из этой очереди. Библиотека RabbitMQ RabbitMQ использует протокол AMQP. Для использования RabbitMQ необходима библиотека, поддерживающая этот протокол. Такие библиотеки можно найти практически для каждого языка программирования. Python ‒ не исключение, для него есть несколько библиотек: py-amqplib txAMQP pika В примерах будет использована библиотека pika. Ее можно установить при помощи менеджера пакетов pip: $ sudo pip install pika==0.9.5 Если отсутствуют pip или git-core, то сначала необходимо установить их: Для Ubuntu: $ sudo apt-get install python-pip git-core Для Debian: $ sudo apt-get install python-setuptools git-core $ sudo easy_install pip Для Windows (для установки easy_install необходимо запустить MS Windows Installer для setuptools): > easy_install pip > pip install pika==0.9.5 Отправка сообщений Наша первая программа send.py будет просто отправлять одно сообщение в очередь. #!/usr/bin/env python import pika connection = pika.BlockingConnection(pika.ConnectionParameters( 'localhost')) channel = connection.channel() Мы подключились к брокеру сообщений, находящемуся на локальном хосте. Для подключения к брокеру, находящемуся на другой машине, достаточно заменить «localhost» на IP адрес этой машины.

Перед отправкой сообщения мы должны убедиться, что очередь, получающая сообщение, существует. Если отправить сообщение в несуществующую очередь, RabbitMQ его проигнорирует. Давайте создадим очередь, в которую будет отправлено сообщение, назовем ее «hello»: channel.queue_declare(queue='hello') Теперь все готово для отправки сообщения. Наше первое сообщение будет содержать строку «Hello World!» и будет отправлено в очередь с именем «hello». Вообще, в RabbitMQ сообщения не отправляются непосредственно в очередь, они должны пройти через exchange (точка обмена). Но сейчас мы не будем заострять на этом внимание, точки обмена будут рассмотрены в третьем уроке. Сейчас достаточно знать, что точку обмена по-умолчанию можно определить, указав пустую строку. Это специальная точка обмена ‒ она позволяет определять, в какую именно очередь отправлено сообщение. Имя очереди должно быть определено в параметре routing_key: оттуда же)

короче, юишник-врун)

Денис
15.08.2018
13:47:52
очень умно, да

у тебя наверное много друзей

Maksim
15.08.2018
13:48:10
последний абзац прочти для разнообразия)

Денис
15.08.2018
13:48:25
так скопировал бы только последний абзац. зачем всю статью?

ума не хватило?

Maksim
15.08.2018
13:48:43
вдруг ты бы хоть сейчас прочёл)

Денис
15.08.2018
13:48:52
я это читал, но ты видимо не догнал о чем я

Google
Денис
15.08.2018
13:49:01
тебе ж лишь бы показать себя красивого, а всех остальных выставить идиотами

какой смысл с тобой вообще спорить

у тебя цели другие

Sergey
15.08.2018
13:49:54
Так, ребят, цыц

Maksim
15.08.2018
13:49:58
о чём ты спорить-то собрался?) что не читал статью, которую сам же скинул?) ну так я сразу сказал

Денис
15.08.2018
13:50:26
я ни о чем не собрался. я честно признаюсь, что разбираюсь с кроликом третий день. а ты мне хамишь и язвишь, вместо того, чтобы помочь

Денис
15.08.2018
13:50:32
ничего более

Maksim
15.08.2018
13:50:36
Денис
15.08.2018
13:51:04
если так будешь себя вести - будет каждый день плохой. нормально относись к людям, умник долбаный

Sergey
15.08.2018
13:51:09
Хочешь об этом поговорить?

если так будешь себя вести - будет каждый день плохой. нормально относись к людям, умник долбаный
За переход на личности можно уйти в бан, и мне не важно что тебя спровоцировали

я считаю всех недопрограммистами пока не доказано обратное.

а ты идешь в РО вместе с Максом не сутки

Artem
15.08.2018
14:15:19
@fes0r а вы используете на работе твою либу вот эту? https://github.com/fesor/request-objects

Artem
15.08.2018
14:15:54
а что изменилось?

Sergey
15.08.2018
14:16:10
https://gist.github.com/fesor/fb1d53e8e4e427c59b930559da83d9a3

что-то типа такого решает почти полностью все проблемы

если надо что-то делать кастомно - всегда можно зарегать под задачу либо ресолвер либо нормалайзер

Google
Dmitriy
15.08.2018
14:19:01
Нафиг юзать кролика везде когда для простых 90% вещей есть ПО намного проще

Sergey
15.08.2018
14:19:25
Нафиг юзать кролика везде когда для простых 90% вещей есть ПО намного проще
нафиг юзать везде mysql если для 90% вещей можно найти ПО проще и удобнее?

Dmitriy
15.08.2018
14:19:46
beanstalkd например

Sergey
15.08.2018
14:19:58
например?
redis, beanstalkd, aws sqs, файлы (для оч простых случаев), база

вариантов много, но кролик покрывает 99% всех кейсов и потому все юзают его по умолчанию

Sergey
15.08.2018
14:20:44
пусть даже кролик жирный. неповоротливый и т.д. - он универсален с большего

а вот тот же beanstalkd - там за счет простоты есть куча нюанов и неудобств

Tex
15.08.2018
14:21:06
Это надо искать
аргумент "это уже есть и не надо искать другое" применим и к кролику

да и вообще ко всему, но он такой себе

Admin
ERROR: S client not available

Sergey
15.08.2018
14:22:01
я юзал beanstalkd потому что мне надо было что-то с минимальным футпринтом по памяти, что бы быстро и просто.

Это надо искать
я тебе больше скажу - это надо думать, анализировать свои задачи, осознать что для разных частей может быть выгодно юзать свои стораджи, а это не всегда оправдано, а это свои минусы, да и разбираться надо.... все это требует думать, а думать для большинства больно. Даже больше скажу - основная задача твоего мозга - НЕ думать и сделать все что бы ты думал как можно меньше (потому что это затратная операция)

Dmitriy
15.08.2018
14:24:03
спасибо кэп

Sergey
15.08.2018
14:24:07
привычки, предрассутки, опыт... все это

Combot
15.08.2018
14:24:09
Knopkod4v Artem (1) увеличил репутацию Sergey Protko (4)

Сергей З.
15.08.2018
14:43:18
Что значит прогреть mysql?

Dmitry
15.08.2018
14:46:12
хм, слышал только про прогрев кэша. Про прогрев БД не слышал

Google
Sergei
15.08.2018
14:46:24
Что значит прогреть mysql?
В каком контексте? Скорее всего, "запустить демон mySQL и подождать до состояния, когда он сможет принимать коннекты"

Сергей З.
15.08.2018
14:47:41
я про кеш срашиваю. Когда говорят прогреть, то какой именно кеш прогревают. Типа buffer pool или query cache или сразу все

Sergey
15.08.2018
14:48:15
вот когда сможешь ответить на этот вопрос - сможешь и додумать ответ на изначальный свой вопрос

Сергей З.
15.08.2018
14:49:01
сжечь
ага)) а дымовые тесты - пока из железа дым не пойдет

как ты себе представляешь прогрев query кэша?
на ум приходит только все запроцы циклом переберать ))))))?

выходит индексный кеш, ок понял. Спасибо!

Sergei
15.08.2018
14:50:24
мож у него там мемори таблицы и туда надо какие-то данные занести, но это уже уровень приложения, а не БД

Сергей З.
15.08.2018
14:50:52
Nurik
15.08.2018
16:06:32
Ребят, а это нормально что работадатель указывает в вакансии PHP разработчика пункт: - Cборки и компиляция пакетов под Linux. ?

Это типа умение собрать из сорцов deb, rpm ?

Vitaly
15.08.2018
16:09:34
Это типа умение собрать из сорцов deb, rpm ?
Полезный навык так-то, для любого бэкэнд девелопера.

Dmitry
15.08.2018
16:10:08
Это типа умение собрать из сорцов deb, rpm ?
Возможно, что-то типа поставить redis под убунту: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04

но вообще, я бы уточнил что они имеют в виду

Страница 1261 из 1387