streich,
1. Ну а что будет знать сообщение о том сколько задач от этого пользователя за последнюю минут обработалось? Ничего. Она собственно и не может знать - потому что этап постановки задачи != этапу обработки задачи.
Значит скрипт который обрабатывает джобы из очереди после каждой обработки должен куда то запомнить сколько задач от этого пользователя он за последнюю минуту обработал.
2. Ну смотря как напишите. Если нормально напишите - будет нормально работать.
Если вы хотите по крону - то нахрена вам очередь вообще? Почему не обычная таблица в базе данных?
1. Где-то хранить данные по владельцам сообщений и в случае оверквоты - откладывать на минуту. Какой нибудь редис вполне покатит.
2. Не понял? Вы не хотите держать демона разгребающего очередь? А что вы хотите?
3. Откладывать задачу на какое то время - если задача обязательно должна быть обработана. Или выкидывать ее в ведро, если похрен
Вопрос звучит так что бы на него не было возможности ответить. Какие данные? Вы же понимаете что если вам каждые 100мс прилетает содержимое "войны и мир" л. толстого это одно, а когда связка телефон фамилия другое. как вы выбираете данные для изменения - по какому нибудь ключу, аля "дай мне фамилию у которой телефон 3232323" или "дай мне название всех книг которые были написаны 1870 году и содержат в тексте фамилию Болконский". Насколько критичен ACID. Миллион вопросов без которых выбор сделать нельзя
а зачем вам из вью передавать аяксом в контроллер id пользователя? если в контроллере вы ровно можете использовать auth()->user()->posts()->create([])?
Сначала нужно взять 3 самых новых статьи.
Затем нужно взять 1 самую старую статью.
Затем нужно взять 3 статьи, где колонка "status" = 1 (true)
Затем взять статьи которые остались.
судя по этой логике вы в принципе выбираете все статьи которые у вас есть в базе. это можно сделать одним запросом. другое дело что это похоже на самоубийство если у вас их много
weranda, слушайте по моему глубоком убеждению человек который сидит и высчитывает какой процент функций из какого то языка программирования он знает, а какой нет - наверное программистом не является. По-этому сказать помню ли я большую часть функций постгресса или меньшую я вам не смогу. Пусть будет меньшая часть.
Но я повторю свой посткриптум:
При этом вообщем то вопрос к чему? Вы собираетесь зубрить все эти функции? Зачем? Главное знать что может делать ваша СУБД, и понимать какую цену вы за это будете платить. Остальное можно посмотреть в документации
weranda, да везде. Даже если у вас магазинчик с 100 заказов по 5 товаров в день - у вас уже за 5 лет в базе миллион записей в таблице связки заказа с товаром. Если вы ведете статистику того что просматривали - то если представить что только 1% покупает то в статистике просмотров будет 100 миллионов. К вам пришел манагер и говорит хочу понять в какой день недели у вас чаще всего просматривают категорию памперсов - и вы пошли гуглить extract. Пришел манагер и сказал выбрать стату средняя разница у пользователя между просмотром и покупкой товара - и вы пошли гуглить какой нибудь datediff.
З.Ы. При этом вообщем то вопрос к чему? Вы собираетесь зубрить все эти функции? Зачем? Главное знать что может делать ваша СУБД, и понимать какую цену вы за это будете платить. Остальное можно посмотреть в документации
weranda, вот я 3 года назад делал рассыльщик почты - там в день 80 миллионов записей прилетает. И мне статистику манагеру по датам и времени как делать? Выбрать все и сидеть обрабатывать? до этого работал в CPA сети - в стате там миллиарды. Как бы вопрос где нет большого количества записей если исключить какие нибудь блоги и лендинг страницы?