Size: a a a

2021 April 08

AG

Anton Gordeev in phpGeeks
готовишь данные, складываешь в кеш (редис, например). Из кеша берёшь и обрабатываешь. Статисктику кладёшь в очередь, не стоит её обрабатывать сиюминутно. И из очереди потихоньку складируешь в основную бд
источник

AG

Anton Gordeev in phpGeeks
собственно, и задачи на рассылку можно также из очереди брать
источник

АВ

Алексей Веснин... in phpGeeks
По поводу кеша думал уже, но в итоге все равно получается так, что после рассылки 1 млн. писем для разных кампаний, у меня они все лягут либо в связанные таблицы(статистики) либо в одну таблицу campaigns_scheduled_overview о которой я писал выше. Т.е за счет кеша я получаю только быстрый доступ и проверки на момент отправки, но тогда получается, что при таком подходе, вполне можно использовать связанные таблицы
источник

VS

Vladimir Sorokin in phpGeeks
Всем привет. Подскажите, пожалуйста, как сделать так чтобы баннер отображался для пользователя один раз в день.
Что не так в коде?:
If($.cookie('next_load')){
$.cookie('next_load', 1, {expires: 1});
}else{
$('#main-modal').modal('show');
$.cookie('next_load', 1, {expires: 1});
}
источник

АВ

Алексей Веснин... in phpGeeks
В целом да, но когда появляются дополнительные условия или необходимо остановить рассылку на паузу, воркер из очереди задание дернул и обработал его(отправил или выполнил ряд проверок и все, типо ОК, но по факту оно не отправлено, так как проверку не прошло)  и нужно его либо обратно релизить в продьюсер, либо получается непонятная каша, т.е пока получается оптимальный вариант, который ты предложил, класть в кеш, быстро дергать от туда и обратно ложить в БД
источник

AG

Anton Gordeev in phpGeeks
в ссмысле ок, но не ок?)
источник

AG

Anton Gordeev in phpGeeks
это как так
источник

AG

Anton Gordeev in phpGeeks
есть 2 очереди: в одной задачи на отправку писем. слушатель очереди увидел задачу - письмо отправил, отправилось, хорошо, задачу из этой очереди удалил и положил во вторую очередь, которая проверяет статус доставки письма. Там уже если с письмом всё ок - обновляет статистику
источник

AG

Anton Gordeev in phpGeeks
Было бы у тебя там 1000 писем в сутки - можно было бы на всё это болт забить и проверять всё в риалтайме. Но с лямом уже сорян, принципы хайлоада и костыли
источник

АВ

Алексей Веснин... in phpGeeks
Когда задания на рассылку добавили в очередь, и воркер его получил в работу, само задание из очереди удаляется, т.е передано воркеру и все, далее оно уже либо фейлится, либо успешно выполняется (в моем случае успешно будет, либо отправка сразу, либо ряд проверок, что сейчас рассылка на паузе и отправлять не нужно, но так как оно не фейлится, то тоже успешно обрабатывается и из очереди удаляется), а по факту не отправлено и его нужно вернуть обратно в очередь, до того момента, пока рассылка будет снята с паузы, т.е замкнутый круг бесполезных телодвижений)
источник

AG

Anton Gordeev in phpGeeks
энененене
источник

AG

Anton Gordeev in phpGeeks
помечай задание в очереди как "задача с подтверждением". Т.е. пока воркер работает - задача вс ещё висит, но в локе, другие слушатели её обойдут стороной. И только если твой воркер сказал очереди "всё ок, эту задачу я выполнил", то она удаляется
источник

АВ

Алексей Веснин... in phpGeeks
сейчас использую RabbitMQ, там вроде они сразу удаляются из очереди, лока нет, на сколько я помню
источник

AG

Anton Gordeev in phpGeeks
был
источник

ДК

Дмитрий Кожанов... in phpGeeks
Никак. Интерактивность не поддерживается
источник

АВ

Алексей Веснин... in phpGeeks
хм, надо глянуть
источник

AG

Anton Gordeev in phpGeeks
щас, я его пару лет назад тыкал. Но ща найду
источник

AG

Anton Gordeev in phpGeeks
источник

АВ

Алексей Веснин... in phpGeeks
спасибо, посмотрю, если все так, то это все сильно упрощает
источник

AG

Anton Gordeev in phpGeeks
статью я канеш какое-то говно скинул, но если поищешь найдёшь нормальную
источник