Используйте кэш данных, чтобы сохранить данные

Персистентность предоставляет механизм данным кэша между вызовами кода MATLAB®, работающего на экземпляре сервера. Услуга персистентности работает отдельно от экземпляра сервера и может быть запущена и остановлена вручную. Имя подключения соединяет экземпляр сервера с сервисом персистентности. Сервис персистентности использует провайдера персистентности, чтобы хранить данные. В настоящее время Redis™ является единственным поддерживаемым провайдером персистентности. Имя подключения используется в коде приложения MATLAB, чтобы создать кэш данных в соединенном сервисе персистентности.

Прежде, чем запустить сервис персистентности для экземпляра сервера от системной командной строки, необходимо создать файл JSON под названием mps_cache_config и поместить его в папку config экземпляра сервера.

mps_cache_config

{
  "Connections": {
    "<connection_name>": {
      "Provider": "Redis",
      "Host": "<hostname>",
      "Port": <port_number>
    }
  }
}

Задайте <connection_name>, <hostname> и <port_number> в файле JSON. Именем хоста может или быть localhost или удаленное имя хоста, полученное из ресурса Azure® Redis Cache. В порядке использовать Azure Кэш Redis, вам будет нужна учетная запись Microsoft® Azure.

Можно задать многочисленные связи в файле mps_cache_config. Каждая связь должна иметь уникальное имя и уникальное (хост, порт) пара. Если вы используете сервис персистентности через инструментальную панель, файл, mps_cache_config автоматически создается в папке config экземпляра сервера.

Рабочий процесс, чтобы использовать персистентность

ШагиКомандная строкаИнструментальная панель
1. Создайте файл mps_cache_configВручную создайте файл JSON и поместите его в папку config экземпляра сервера.Автоматически созданный.
2. Запустите сервис персистентности

Используйте mps-cache, чтобы запустить сервис персистентности.

Для тестирования можно создать сервисный контроллер персистентности объектное использование mps.cache.control.

  • Создайте сервис персистентности.

  • Добавьте сервис персистентности в экземпляр сервера с помощью имени подключения.

  • Запустите сервис персистентности.

  • Присоедините связь, сопоставленную с сервисом персистентности к экземпляру сервера.

3. Создайте кэш данныхИспользуйте mps.cache.connect, чтобы создать кэш данных.Используйте mps.cache.connect, чтобы создать кэш данных.

Пример: постепенно увеличьте счетчик Используя кэш данных

Этот пример показывает вам, как использовать персистентность постепенно увеличить счетчик с помощью кэша данных. Пример представляет два рабочих процесса: рабочий процесс тестирования, который использует MATLAB и рабочий процесс развертывания, который требует активного экземпляра сервера.

Тестирование рабочего процесса

  1. Создайте сервис персистентности, который использует Redis в качестве провайдера персистентности, и запустите сервис.

    ctrl = mps.cache.control('myRedisConnection','Redis','Port',4519)
    start(ctrl)
    
  2. Запишите код MATLAB, который создает кэш и затем обновляет счетчик с помощью кэша. Назовите файл myCounter.m

     myCounter.m

  3. Протестируйте счетчик.

    for i = 1:5
        y(i) = myCounter('myCache','myRedisConnection');
    end
    y
    y =
    
         1     2     3     4     5

Рабочий процесс развертывания

Прежде чем вы развернете код, который использует персистентность для экземпляра сервера, запустите сервис персистентности и присоедините его к экземпляру сервера. Можно запустить сервис персистентности с системной командной строки с помощью mps-cache или выполнить шаги в инструментальной панели. Этот пример принимает, что ваш экземпляр сервера использует хост по умолчанию и порт: localhost:9910.

  1. Группируйте файл myCounter.m с помощью приложения Production Server Compiler или mcc.

  2. Разверните архив (файл myCounter.ctf) к серверу.

  3. Протестируйте счетчик. Можно выполнить вызовы к серверу с помощью УСПОКОИТЕЛЬНОГО API с рабочего стола MATLAB.

    rhs = {['myCache'],['myRedisConnection']};
    body = mps.json.encoderequest(rhs,'Nargout',1);
    
    options = weboptions;
    options.ContentType = 'text';
    options.MediaType = 'application/json'; 
    options.Timeout = 30;
    
    for i = 1:5
    response = webwrite('http://localhost:9910/myCounter/myCounter', body, options);
    x(i) = mps.json.decoderesponse(response);
    end
    x = [x{:}]
    x =
    
         1     2     3     4     5

Как ожидалось результатами рабочего процесса тестовой среды и рабочего процесса среды развертывания является то же самое.

Смотрите также

| | | | | |