LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

надо делать на воркерах - группах тредов, что читают задания из тредсейф очереди заданий данной группы и выполняют их. групп может быть не одна, а несколько - по типу заданий.

получаешь запрос от клиента - формируешь задание кидаешь в очередь заданий обработки запроса, тред-воркер ожидающий на очереди просыпается и начинает его исполнять. тип задания, все данные, нужные для исполнения находятся в самом задании. если воркеру нужны новые асинхронные операции, то он может их делать сам(становясь в ожидание), или формировать новые задания других воркеров, а свое задание цеплять к новому как отложенное, и больше его не исполнять.

воркер, что исполняет задание с отложенным, исполнив свое, возобновляет обработку отложенного тем или иным способом…

в таких системах есть две проблемы - рекурсивное порождение заданий от криворукости автора и дедлоки воркеров, по той же самой причине.

ps. то что описано, является по сути «микросервисной» архитектурой только внутри процесса. в дальнейшем (если код написано красиво) легко масштабируется на настоящие микросервисы (каждая группа воркеров это по сути микросервис).

Исправление alysnix, :

надо делать на воркерах - группах тредов, что читают задания из тредсейф очереди заданий данной группы и выполняют их. групп может быть не одна, а несколько - по типу заданий.

получаешь запрос от клиента - формируешь задание кидаешь в очередь заданий обработки запроса, тред-воркер ожидающий на очереди просыпается и начинает его исполнять. тип задания, все данные, нужные для исполнения находятся в самом задании. если воркеру нужны новые асинхронные операции, то он может их делать сам(становясь в ожидание), или формировать новые задания других воркеров, а свое задание цеплять к новому как отложенное, и больше его не исполнять.

воркер, что исполняет задание с отложенным, исполнив свое, возобновляет обработку отложенного тем или иным способом…

в таких системах есть две проблемы - рекурсивное порождение заданий от криворукости автора и дедлоки воркеров, по той же самой причине.

Исходная версия alysnix, :

надо делать на воркерах - группах тредов, что читают задания из тредсейф очереди заданий данной группы и выполняют их. групп может быть не одна, а несколько - по типу заданий.

получаешь запрос от клиента - формируешь задание кидаешь в очередь заданий обработки запроса, тред-воркер ожидающий на очереди просыпается и начинает его исполнять. тип задания, все данные, нужные для исполнения находятся в самом задании. если воркеру нужны новые асинхронные операции, то он может их делать сам, или формировать новые задания других воркеров, а свое задание цеплять к новому как отложенное, и больше его не исполнять.

воркер, что исполняет задание с отложенным, исполнив свое, возобновляет обработку отложенного тем или иным способом…

в таких системах есть две проблемы - рекурсивное порождение заданий от криворукости автора и дедлоки воркеров, по той же самой причине.