Я хотел бы знать, возможно ли (и как) заставить актера akka получать сообщения со стандартного ввода. По сути, идея заключалась бы в том, чтобы каждая строка ввода отправлялась как сообщение актеру, например.
> myprogram
DO X
DO Y
...
а затем чтобы актер получал сообщения «DO X», «DO Y» и т. д.
Есть ли стандартное решение для этого?
Я думаю, один из способов сделать это:
spawn {
while(in.available) {
actor ! in.readLine
}
}
Но тогда у меня было бы два актера (или одна задача на основе актера и один актор), и я бы использовал блокирующий ввод-вывод (кстати, это безопасно с актерами?)... Кроме того, это затрудняет контроль блок возрождения (например, чтобы убить задачу).
Добавлены дальнейшие действия от OP
У меня есть пара дополнений, если позволите...
Есть ли снижение производительности при использовании этого решения (т. е. запускает ли
CamelServiceManager
много вещей? HTTP-сервер и т. д.)?Есть хороший учебник для начинающих? Я начал читать Camel с официальной документации Akka, но кажется предполагать больше знаний о Верблюде, чем у меня есть в настоящее время. Например, я не мог понять, как использовать пользовательское
java.io.InputStream
какendpointUri
.