Size: a a a

2020 December 01

ДТ

Дмитрий Тремасов... in Laravel Pro
эта процедура атомарная
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
не должно возникнуть случая когда 2 воркера у тебя одновременно получат 1
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
как вариант можно тупо делать из данных того что тебя обрабатывать какой то ключ типа key = md5(bot_id, task_id) и incr(key)
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
но еще более простой вариант поставить https://beanstalkd.github.io/
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
это самый простой вариант очереди - проще чем раббит или кафка
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
тогда он сам будет следить за тем что бы 1 сообщение попадало одному воркеру
источник

A

Alex in Laravel Pro
так сообщения то по факту два. проблема в том, что их хватает два воркера, а "прогресс" меняется в конце обработки. следовательно оба воркера отвечают на один этап бота)

Грубо говоря - имеем бота который шлёт 1, ждет ответа, шлёт 2, ждет ответа, шлёт 3..
источник

A

Alex in Laravel Pro
в таком случае когда мы пишем 2 сообщения подряд, в ответ прилетят две двойки
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
не понял. если проблема в том что одно сообщение обрабатывается 2 воркерами одновременно это одно. если проблема в том что 2 сообщения обрабатываются одновременно это другое
источник

A

Alex in Laravel Pro
Я описывал второй вариант )
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
ну в редисе - я бы делал через INCR/DECR. лочил бы бота по каким то уникальным данным - откладывал бы сообщения для ботов который залочен
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
в раббите, кафке и бинсталке - развел бы по queue наверное
источник

A

Alex in Laravel Pro
Думал в самом начале обработки ставить отдельный флаг, что уже есть задача в очереди, и при повторном сообщении откладывать выполнение на несколько секунд, но это костыль какой-то..

над таким вариантом я и думал изначально. Но счёл его странноватым)
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
да вообще как то задача звучит странно. есть список задач которые надо выполнить
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
ну и выполняем
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
прогресс шлем по каждой задаче
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
а на уровне интерфейса разбираем в какой задаче у нас прогресс изменился и выводим
источник

VA

Vadimo Arturo in Laravel Pro
Всем привет , кто как использует мультиязычность сайта , можете поделиться практикой ?
источник

E

Egor in Laravel Pro
Привет
Такой вопрос. Есть любой сайт который запрашивает апи. На проекте докер.
Я верно понимаю, что запрос сперва идёт в докер, потом уже спускается в бэк?
источник

M

Maxx in Laravel Pro
Egor
Привет
Такой вопрос. Есть любой сайт который запрашивает апи. На проекте докер.
Я верно понимаю, что запрос сперва идёт в докер, потом уже спускается в бэк?
в данном случае наверное докер можно рассматривать как какой-то роутер, за которым, через NAT есть другие устройства.
т.е. соединение происходит напрямую с сервером, а докер только "открывает нужные порты"
источник