contributte/rabbitmq – restartování consumera po deployi

- exquis
- Člen | 84
Ahoj,
mám debian server, na tom klasicky rozběhnutý web. Do toho je na webu docker, kde si nyní hraji s rabbitMQ (implementace contributte/rabbitmq).
Problem 1:
Co mi neni jasne, jak po deployi shodim vsechny consumery, aby se „refreshnul“ jejich kod a zaroven je hned vsechny nahodil.
Aktualne mam opravdu jen jedhoho testovaciho consumera, ale to prave z duvodu, ze nevim jak s tim poradne zachazet. Cilem je mit consumeru vice (odesilani mailu, sms, narocnejsi veci na zpracovani atd).
Toho jedineho consumera spoustim jako „nekonecneho“, ale vlastne nevim jak takovy proces automatizovane zastavit, stahnout aktualni verzi kodu a spustit.
php index.php rabbitmq:consumer testConsumer
Problem 2:
Obcas rabbit spadne a prestane zpracovavat, jak ho znovu automatizovane nahodit? Gemini povida neco o Supervisoru, je to cesta?
Diky

- Pavel Kravčík
- Člen | 1209
My to máme nastavené cca takhle plus k tomu jsme si napsali takový ovládací GUI, kde můžeš restartovat, vypnout, zapnout automatickou obnovu apod. Co dělá pak přes shell:
systemctl restart <service>
[Unit]
Description=XXX
After=mysql.service rabbitmq-server.service
[Service]
Type=simple
WorkingDirectory=/opt/bcom/var/www/xxx
ExecStart=/usr/bin/php8.4 ./bin/rabbit.php xxx
Restart=always
RestartSec=1m
MemoryMax=256M
MemorySwapMax=16M
[Install]
WantedBy=multi-user.target
Editoval Pavel Kravčík (Včera 9:28)

- dms
- Člen | 103
Přes supervisord.conf nastaveno x běžících procesů cca takhle
[program:aaa]
command=/opt/php83/bin/php /www/index.php rabbitmq:consumer -w testQueue1
directory=/
user=admin
autorestart=true
process_name=%(process_num)02d
numprocs=3
[program:bbb]
command=/opt/php83/bin/php /www/index.php rabbitmq:consumer -w testQueue2
directory=/
user=admin
autorestart=true
process_name=%(process_num)02d
numprocs=3
po deploy spustit: systemctl restart supervisord
jestli je to dobrý řešení buhví, ale funguje to už několik let
stabilně
Editoval dms (Včera 19:25)