Я уже две истории слышал в своём оффлайн окружении о блокировке средств. В одном случае человек получал переводы по 50 килорублей ежемесячно от одного плательщика. На 5-м получил блокировку. Во втором случае человек получал платежи от 2 до 15 тысяч от множества людей. Тоже получил блокировку. После какой суммы сказать сложно, так как он в таком режиме работал уже много лет. Но подозреваю, что где-то после двухсот тысяч полученных за пару месяцев. Достоверность не проверял, но причин сомневаться не вижу.
nuclear_kote, для этой цели я бы объявил в классе сервиса метод, сохраняющий переданные ему данные в базу, и пометил бы его аннотацией @Async. И всё, очередь не нужна, бесконечный цикл тоже. Достаточно в контроллере вызывать этот метод, а Spring сам выполнит его в отдельном потоке, взятом из пула.
nuclear_kote, как раз пытаюсь разобраться, что вы спрашиваете. Задача "обработка очереди" настолько общая, что невозможно дать ответа точнее. Опишите точнее, что за очередь, откуда берётся, для чего служит и прочее.
nuclear_kote, лаконично. У Spring'а есть целая куча механизмов для выполнения фоновых задач. Желание запускать потоки низкоуровневым API - признак неправильного использования Spring. Впрочем, как и бесконечные циклы.
Какое назначение метода? А то бесконечный цикл выглядит как костыль и наводит на размышления, что есть более правильный и изящный способ добиться той же функциональности.
MrSanta, я не знаю, какой способ доступа к БД вы используете, да и не пишу на PHP уже очень много лет, поэтому могу только предполагать, что должно быть что-то вроде:
$stmt = $db->prepare("select * from `table` where :data between cast(a1 as real) and cast(a2 as real)");
$stmt->bindValue(':data', $data, PDO::PARAM_STR);
Мой опыт руководителя показывает, что более хорошие программисты получаются из тех, кто начал с основ, а не с фреймворков.