Общий ответ
Актеры обрабатывают сообщения всегда так быстро, как могут, где обработка означает удаление их из почтового ящика и передачу их в поведение актера. Таким образом, поведение - это место, где лежит ваш ответ: измените его на что-то более подходящее в течение периодов времени, требующих неноминальных действий.
Throttling
Если один компонент обрабатывает сообщения с более низкой скоростью, чем они создаются, в конечном итоге он должен будет отбрасывать сообщения. Либо используйте ограниченный почтовый ящик, либо поставьте менеджера впереди, который отслеживает прогресс работника и переходит в режим «ответ с отрицательным результатом» в периоды стресса.
Когда актер хочет ограничить собственную скорость выхода, используйте context.system.scheduler
.
Это должно ответить на ваши первые два пункта.
Восстановление
В периоды, когда требуемый ресурс недоступен, у вас есть два варианта в зависимости от требований: либо помещать сообщения в очередь, либо переходить в режим ответа «не в порядке». Вы также можете смешивать, то есть ставить в очередь с определенными временными и пространственными ограничениями, и завершать работу при достижении этих ограничений.
Дальнейшие соображения
Всегда сохраняйте единицы работы, обрабатываемые актерами, настолько маленькими, что актер может реагировать в соответствии с требованиями к времени ожидания. Последний может быть очень расслабленным (работать непрерывно в течение нескольких часов) или очень строгим (должен обрабатывать сообщения с частотой кГц).