При использовании Lua для написания сервисов поддерживается способ синхронного вызова RPC с удаленными экземплярами сервисов с помощью Lua корутин. Запуск и планирование этих корутин уже встроены внутрь сервисной коробки, поэтому они незаметны для пользователя.
Допустим, что имеется следующий сервис:
сервис динамический Login множественный=8 {
ui64 login(строка, строка)
void logout(ui64)
}
Инструменты генерации фреймворка создают такой файл Lua прокси, конкретная реализация которого была опущена:
ProxyLogin = {}
ProxyLogin.proxy_id = 0
EmptyArgs = {}
function ProxyLogin:login(arg1, arg2)
......
end
function ProxyLogin:logout(arg1)
......
end
Proxy = Proxy or {}
function Proxy:get_Login_timeout(name, timeout)
......
end
......
Внутри реализации вызывающего сервиса предположим, что зарегистрированный путь сервиса равен '/service/login'. Вызовите асинхронную версию прокси сервиса Login:
-- Получение сервиса, которое можно сохранить для последующего использования
-- Получение сервиса с именем /service/login, время ожидания равно 2000 миллисекунд, при превышении времени ожидания будет возвращено nil
local login_prx = Proxy:get_Login_timeout("/service/login", 2000)
......
-- Вызов удаленного сервиса через прокси, процесс корутина yield'ится, если вызов завершается ошибкой или истекает время ожидания, будет возвращено nil
local id = login_prx:login("пользователь", "пароль")
Перевод текстовых описаний и комментариев:
сервис динамический Login множественный=8
-> динамический сервис Login множественный=8
ui64 login(строка, строка)
-> ui64 login(строка, строка)
void logout(ui64)
-> void logout(ui64)
local login_prx = Proxy:get_LuaLogin_timeout("/service/login", 2000)
-> local login_prx = Proxy:get_Login_timeout("/service/login", 2000)
Также исправлены некоторые мелкие ошибки в тексте:
"пользователь"
-> "пользователь"
"пароль"
-> "пароль"
Теперь весь текст переведен и оформлен согласно правилам.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )