Есть способы справиться с этой ситуацией вручную, порождая потоки.Но одна из главных проблем, с которой вы столкнетесь в будущем (с которой я столкнулся в моем опыте программирования), заключается в том, что потоки немного сложны в обслуживании и имеют ряд недостатков, если не обрабатываются должным образом.Во-первых, возможности обработки ошибок ограничены, и вам понадобится внешняя таблица (постоянная) или глобальная переменная, регистрирующая или перехватывающая все эти ошибки.Еще одной проблемой является ограничение обработки, которое может принять сервер.Если вы создаете слишком много потоков в фоновом режиме, ограничение обработки сервером и, следовательно, запросы к базе данных, которые он делает одновременно, станет проблемой позже.
Лучшее решение, которого следует избегать, - это любая доступная среда фоновых задач.Их преимущество заключается в том, что они будут следовать шаблону очереди производителя / потребителя и будут выполнять все отслеживание для вас через отдельный процесс демона, работающий в фоновом режиме.Но тогда недостатком здесь является то, что процесс-демон все еще будет уязвим.
Еще один вариант - интегрировать службу очередей или обмена сообщениями, такую как Rabbit MQ .Это не только масштабирует, но и имеет очень хорошую реализацию, доступную на разных языках.