Siema mirki.
poproszę o gotowe rozwiązanie albo link do materiału z którego mógłbym skorzystać. Mam następujący problem:
Jest aplikacja napisana w #php #symfony która to publikuje eventy w kolejce #rabbitmq. Są też 2 consumery, które to konsumują te eventy. Problem jest taki, że w pewnym miejscu mam race condition. Są opublikowane rożne eventy, które podczas konsumpcji tworzą lub aktualizują rekord w bazie danych. Problem jest w
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mariecziek: Ciężko powiedzieć czego potrzebujesz, ale zgadując na podstawie tego co napisałeś, to nie istnieje żadne gotowe rozwiązanie pod twój problem, bo to twój kod jest problemem. Potrzebujesz po prostu poprawnego designu i tyle.
Na race condition aktualizacji może pomóc transakcja + SELECT FOR UPDATE, żeby zrobić locka na wierszu dopóki nie skończysz swojej operacji update'u.
Co do race condition przy tworzeniu wierszy, to już musiałbyś dokładnie napisać co
  • Odpowiedz
@mariecziek: Tak jak mówiłem - design kodu. Sterowanie logiką biznesową przez wyjątki to pierwszy klasyczny błąd. Tracisz przez to możliwość zrobienia tej operacji atomowo, jak zresztą widać.
Zamiast tego zrób albo tak jak pisałem - transakcja, select for update, update/insert, koniec transakcji. Albo jeśli jesteś w stanie to zrobić w sposób idempotentny to po prostu INSERT ... ON DUPLICATE KEY UPDATE albo REPLACE.

Ewentualnie zapytaj po prostu jakiegoś seniora
  • Odpowiedz
@Ernest_: w jaki sposób ten fedi wykop jest zabezpieczony przed manipulacja i multikontami, wykopywaniem samemu siebie z innych kont? Jak korpo się dowie to boty to tak zasraja że szkoda gadać, istnieje tam jakieś w twoim panelu fyrdumdyrdum do wyłapywania synchronicznego wykopywania? I kiedy Toto będzie embedowac YouTube i inne żeby nie przenosiło do filmu tylko od razu pokazywało?
  • Odpowiedz
Siema #php świry.
Mam pytanko do osób pracujących z #symfony i #rabbitmq #amqp - https://symfony.com/doc/current/messenger.html#multiple-failed-transports

No więc mam w aplikacji 2 kolejki - jedna służy do obsługi eventów z części legacy aplikacji - przesyłam event jako JSON. Druga kolejka służy do obsługi eventów z nowej aplikacji. Problem jaki próbuję rozwiązać, to utrata wiadomości w razie coś pójdzie nie tak. Teraz po prostu tracę wiadomość i tyle
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hello, jest tu jakiś magik od RabbitMQ?

Korzystajac z docker-compose postawiłem Rabbita na dwoch klastrach (3 nody per cluster). Teraz chce dodac federacje, na jedenym z clustrow federation ma status running. Na drugim clustrze jest
"Error detail: econnrefused"

version: '3.8'
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#rabbitmq #freebsd #mydevil #unix #erlang

Witam, jest moze ktos komu udalo sie uruchomić RabbitMQ na hosingu mydevil? Wiem ze on jest wgrany globalnie. Dostępu do roota nie mam. A dowiedzialem sie tylko tyle, ze trzeba uruchomic go z flaga gdzie wskażę wlasny rabbitmq.conf a w nim sciezke do bazy.
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Potrzebuje w rabbitmq ustawić konsumpcje kolejek tak aby zachowywały się synchronicznie, czyli pobierały kolejną wiadomość gdy proces zakończy przetwarzanie poprzedniej da się to jakoś zrobić ?

#nodejs #javascript #rabbitmq #node
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jest jakis szybki sposob na usuniecie duplikatow z klejki rabbitmq? Mam tylko tam ID w messages. Czy musze najlepac consumera co pobierze wszystko, wywali duplikaty i wysle jeszcze raz do kolejki? #programowaniee #php #rabbitmq
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@wojtek656: Nie da się edytować tego co masz w kolejce, musisz zrzucić wszystko z kolejki, usunąć deduplikaty i na nowo wrzucić. No chyba że robisz zapis do bazy, to może zrób sobie tymczasowy unikalny indeks na jakieś id (jeżeli masz taką możliwość) i ignoruj rzucane wyjątki o naruszenie indeksu ( ͡° ͜ʖ ͡°)
  • Odpowiedz
Czołem!

Mam problemem z ustawieniem połączenia z rabbtmq. Jego IP i port ustawione przez Dockera wynosi 192.168.99.100:32777

teraz w pythonie za pomocą biblioteki tera wykonuję niniejsze polecenia:
parameters = pika.URLParameters('amqp://guest:guest@192.168.99.100:32777/')
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@yggdrasil
polecenie uruchomienia to: bash -c "clear && DOCKERHOST=tcp://192.168.99.100:2376 DOCKERCERTPATH=/Users/daxxpl/.docker/machine/machines/default DOCKERTLS_VERIFY=1 docker exec -it rabbitmq sh"

czyli zły port miałem... ale po naprawieniu portu mam teraz taki błąd:
pika.exceptions.IncompatibleProtocolError: (-1, 'EOF')

Korzystam z programu kinematic do obsługi dockera.
  • Odpowiedz
Mireczki potrzebuje pomocy z konfiguracją #celery #rabbitmq #supervisor #django #python
Miałem sobie na serwerze jedną apkę w #django z taskami #celery na #rabbitmq, celery odpalane przez #supervisor i wszystko działało jak należy. Dołożyłem kolejną apkę w django zachowując ten sam schemat konfiguracji i działa, tylko zaczęły się problemy. Taski z jednej trafiają czasem do
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@svs_svs: średnio się znam, ale może trzeba zdefiniować osobne kolejki

A worker instance can consume from any number of queues. By default it will consume from all queues defined in the task_queues setting (that if not specified falls back to the default queue named celery).


http://docs.celeryproject.org/en/latest/userguide/workers.html#queues
https://stackoverflow.com/questions/19853378/how-to-keep-multiple-independent-celery-queues
  • Odpowiedz
@qwelukasz: jaki masz typ exchange? A widze topic. Myslalem ze nie ustawiles tego typu.
EDIT: a widze musisz chyba to zrobic na odwrot. rotuing key w kolejce ma miec szkolenie.* i wtedy jak wyslesz szkolenie.wyniki to trafi do tej kolejki
  • Odpowiedz
@qwelukasz: Czyli najlepiej jak rotuing key bedzie np. szkolenie.* a drugi routing key szkolenie.wyniki. Teraz jak wyslesz wiadomosc na ten exchange z routing key: szkolenie.wyniki to trafi na dwie kolejki. Jak wyslesz wiadomosc z rotuing key: szkolenie.costam to trafi tylko do tej szkolenie.*
  • Odpowiedz
Mirki korzysta ktoś z #rabbitmq?

Załóżmy, że mam dwa serwisy: Api, oraz Users.Service.
- klient wysyła do Api request celem zarejestrowania się w systemie.
- api wrzuca komendę na szynę, a ona następnie trafia do odpowiedniego serwisu(Uses.Service).
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#docker #rabbitmq #programowanie Chłopacy, pytanie. Mam sobie Dockerfile zaczynający się FROM php:7-apache. Próbuję do #php dodać wsparcie rabbita. Teoretycznie można to zrobić tak RUN apt-get update && apt-get install -y librabbitmq-dev && echo "" | pecl install amqp, ale nic z tego. W php mam Fatal error: Uncaught Error: Class 'PhpAmqpLib\Connection\AMQPStreamConnection' not found. Dodawał może ktoś ten moduł?
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@repostuje: wszystko jest ok. Instalacja jest bezbłędna, bo inaczej kontener by się nie zbudował. Mimo wszystko nie mam wsparcia w PHP do łączenia się z serwerem rabbita. Dodałem nawet moduł do php.ini pod koniec, bo myślałem, że to przez to. No ale lipa nadal.
  • Odpowiedz