@prophp7

Страница 1259 из 1387
Maksim
13.08.2018
08:40:57
Можно и так сказать) кто-то пруфа юзает, кто-то свои велосипеды

Dmitry
13.08.2018
08:41:08
тут только на основе принятых веществ можно делать)
просто видел broadway, мало ли серебряную пулю отлили

Maksim
13.08.2018
08:41:23
Мне бродвей не понравился

Max
13.08.2018
08:41:52
Google
Maksim
13.08.2018
08:42:11
у меня свой велосипед, который устраивает полностью. так что всякие пруфы, бродвеи и т.д. не нужны. Можно посматривать в ожидании светлых идей, но не более

Max
13.08.2018
08:46:06
Maksim
13.08.2018
08:49:27
страшно как-то звучит)

Max
13.08.2018
08:50:36
ну получается как, одна сага может порождать другую?

Maksim
13.08.2018
08:50:44
может

Max
13.08.2018
08:52:51
а страшно, это то что у меня сейчас)

Maksim
13.08.2018
08:53:11
не, страшно - это обеспечить консистентность надцати саг

Max
13.08.2018
08:56:09
наркомания кароч

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

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

Maksim
13.08.2018
09:02:11
ну, раз всё та просто, дерзай)

Dmitry
13.08.2018
15:08:39
@thatside halp

Google
Bohdan
13.08.2018
15:08:56
оно само должно

Dmitry
13.08.2018
15:09:25
Похоже, у кого-то прилег вебхук

Sergey
13.08.2018
15:11:04
сорян, я удалил(

Денис
14.08.2018
10:52:22
Привет. Растолкуйте пожалуйста про очереди (RabbitMQ), не могу догнать. Код на РНР является Producer-ом для очереди - добавляет в нее задачи. Сторонний код является Consumer-ом и выполняет эти задачи. В простом варианте, когда это задачи, скажем, на рассылку почты или уменьшение размера изображений, тут всё кажется понятным: мой код на РНР добавил задачу в очередь и забыл про нее. Сторонний код получил задачу из очереди и обработал ее. Но в варианте, в котором нужно получить результат задачи, я что-то не могу разобраться чисто архитектурно. Например, мой код на РНР кидает в очередь задачу, подписчик должен ее выполнить и вернуть результат работы поставщику (моему коду). Каким способом этот возврат результатов реализуется? Есть ли в RabbitMQ какие-то средства для этого или же результат работы должен передаваться используя другую очередь, скажем, для результатов, в которой сторонний код, исполняющий задачу, будет в роли поставщика, а мой код на РНР будет в роли подписчика? Подскажите пожалуйста, а то что-то в этом месте образовался пробел в понимании работы.

Maksim
14.08.2018
10:59:11
pub\sub, command, event Продюсер пишет команду: - сделай заебись - консамер всё сделал, кидает эвент что такая-то задача выполнена. кому нужен результат подписывается на получение этого сообщения (эвента) и ждёт

Shaun
14.08.2018
11:01:00
Привет. Растолкуйте пожалуйста про очереди (RabbitMQ), не могу догнать. Код на РНР является Producer-ом для очереди - добавляет в нее задачи. Сторонний код является Consumer-ом и выполняет эти задачи. В простом варианте, когда это задачи, скажем, на рассылку почты или уменьшение размера изображений, тут всё кажется понятным: мой код на РНР добавил задачу в очередь и забыл про нее. Сторонний код получил задачу из очереди и обработал ее. Но в варианте, в котором нужно получить результат задачи, я что-то не могу разобраться чисто архитектурно. Например, мой код на РНР кидает в очередь задачу, подписчик должен ее выполнить и вернуть результат работы поставщику (моему коду). Каким способом этот возврат результатов реализуется? Есть ли в RabbitMQ какие-то средства для этого или же результат работы должен передаваться используя другую очередь, скажем, для результатов, в которой сторонний код, исполняющий задачу, будет в роли поставщика, а мой код на РНР будет в роли подписчика? Подскажите пожалуйста, а то что-то в этом месте образовался пробел в понимании работы.
И ждёт - Максим имеет ввиду что предположительно у тебя демон, если же нет - то лучше не кидать задачу в очередь а просто вызывать нужные тебе методы сервиса

Bohdan
14.08.2018
11:01:00
> Есть ли в RabbitMQ какие-то средства для этого RPC там есть

Денис
14.08.2018
11:13:32
И ждёт - Максим имеет ввиду что предположительно у тебя демон, если же нет - то лучше не кидать задачу в очередь а просто вызывать нужные тебе методы сервиса
:( я что-то еще больше запутался. на стороне РНР я могу запустить и демона (yii2-queue). Но этот демон ведь не должен слушать эту очередь, в которую я добавляю сообщение.

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

Денис
14.08.2018
11:15:49
то есть ответ через другую очередь?

Bohdan
14.08.2018
11:16:05
например, так pub/sub еще через redis любят делать

Денис
14.08.2018
11:16:11
консумер кончил и кинул сообщение в другую очередь, скажем "очередь результатов работы", которую слушает демон на РНР

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

Bohdan
14.08.2018
11:17:29
я тебе уже ответил: у кролика есть rpc

Денис
14.08.2018
11:17:40
буду гуглить про рпц. спасибо

Bohdan
14.08.2018
11:17:54
https://www.rabbitmq.com/tutorials/tutorial-six-php.html

но это больше про реквест-респонс будет

Денис
14.08.2018
11:18:28
нашел уже. спасибо. хоть как-то разберусь. потом, если что, спрошу.

Google
Oleg
14.08.2018
11:21:34
Чёт я не помню rpc у кролика. Его можно построить, но из коробки такого механизма нет. Может плагин какой?

Денис
14.08.2018
11:23:38
вон ссылка на доку выше
Если вдруг есть какие-то еще способы (бестпрактикс) передачи результатов работы продюсеру - с удовольствием выслушаю.

Oleg
14.08.2018
11:25:18
Ну так это не механизм кролика, а один из вариантов использования очередей. Его нужно реализовывать самостоятельно, в отличии от директов и фанаута

Денис
14.08.2018
11:26:53
опиши свой кейс, может есть варианты получше
Специфическое приложение - работает с оборудованием. Пользователь через интерфейс запрашвиает состояние оборудования. Это состояние может определяться отеносительно долгое время. То есть открыл страницу с устройством, через N секунд получил результат. Фактически получением результата занимаюстя консумеры на питоне. Они опрашивают, вычисляют и т.д. делают много работы в общем. Но также нужно опрашивать оборудование периодически для накопления статистики - это делают простые скрипты через cron - они просто добавляют в очередь точно такую же задачу на опрос оборудования. Результаты должны приниматься ядром и помещаться в базу данных. Но если запросил пользователь, а не скрипт из крона, то еще и пользователю надо сообщить результат в браузер.

то есть инициаторов запуска опроса несколько. но результаты надо возвращать всегда ядру, которое знает что с ними делать.

Oleg
14.08.2018
11:27:50
«На кролике можно сделать rpc», а не «в кролике есть rpc »

Так может и не ждать ответа, а периодически спрашивать результат, раз он где то храниться?

Денис
14.08.2018
11:30:09
от этого как раз и уходим в сторону нормальной асинхронности и вебсокетов

много причин не опрашивать периодически

Oleg
14.08.2018
11:31:00
Ну тогда строй rpc

Две очереди, продюсер шлёт запрос в одну очередь и слушает ответ из другой

Классический вариант

Maksim
14.08.2018
11:35:37
продюсер в очереди ничего не шлёт, так-то)

Oleg
14.08.2018
11:39:08
Ну ок, в rpc продюсер называют клиентом, а консьюмер сервером. Пусть так

Maksim
14.08.2018
11:39:39
суть в том, что сообщеньки улетают в эксчендж, а не в очередь)

Bohdan
14.08.2018
11:39:49
«На кролике можно сделать rpc», а не «в кролике есть rpc »
сорри, никогда не приходилось реализовать - просто помню, что есть секция в доке

Денис
14.08.2018
11:40:44
Чувствую, меня ждут приключения )))

Google
Денис
14.08.2018
11:40:56
Ок. Спасибо! :) Уже интересно

Bohdan
14.08.2018
11:42:03
убиваем браконьеров

Maksim
14.08.2018
11:42:04
паблишер -> exchange -> routing key -> queue (1?) сабскрайбер -> queue паблишер к очереди отношения не имеет) он про неё тупо не знает.

ию2 в чатике? беги...

Admin
ERROR: S client not available

Bohdan
14.08.2018
11:42:25
нима

Maksim
14.08.2018
11:42:33
где?
красавчик)

Андрей
14.08.2018
11:42:37
показалось

Денис
14.08.2018
11:42:39
ию2 в чатике? беги...
да я бегу уже от йии давно ))) никак не убегу

Bohdan
14.08.2018
11:42:52
я его не забанил, но спам отметил

Oleg
14.08.2018
11:43:10
Ну документация кролика не делает разницы публикует ли продюсер в очередь или в эксченьж

Rodion
14.08.2018
11:43:25
это не спам.

Rodion
14.08.2018
11:43:33
Парни мне php-ник нужен)

Bohdan
14.08.2018
11:43:51
это спам до тех пор, пока рассылка не согласована с администрацией чата

Sergey
14.08.2018
11:43:52
Парни мне php-ник нужен)
а ты нам не нужен

иди на апворки всякие с такими штуками

Андрей
14.08.2018
11:44:32
Google
Oleg
14.08.2018
11:46:19
паблишер -> exchange -> routing key -> queue (1?) сабскрайбер -> queue паблишер к очереди отношения не имеет) он про неё тупо не знает.
Ок, каюсь: не уточнил особенность кролика - разделение эксченьжа и собственно очереди. Под очередью имел в виду совокупность кью и эксченжа

Maksim
14.08.2018
11:47:06
да это не для кролика сделано, а в принципе) что бы можно было отсылать не 1к1, а 1 ко многим)

Oleg
14.08.2018
11:48:17
Это всего лишь один из способов этого добиться

В zmq например нет эксченжа, только очереди

Alexander
14.08.2018
11:51:46
Oleg
14.08.2018
11:53:37
Но ведёт оно себя как очередь :)

Sergey
14.08.2018
11:53:55
В zmq например нет эксченжа, только очереди
zmq это не брокер сообщений, это либка на которой удобно делать inter process communication. "очереди" там на уровне сокетов, больше на буфер сообщений похоже

Maksim
14.08.2018
11:57:26
суть эксченджа - как раз отвязать отправителя от конкретного назначения) так что отправитель про очередь знает, что она, наверное, суещтвует) и только

Alexey
14.08.2018
14:17:28
Всем привет. Как при записи в цикле строк в файле, записывать их в начало файла и смещать остальное вниз?

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