Это мой проблемный сценарий:
1.Create 2 apps.
2.App1 continuously pulls tweets and stores the json file in its /data folder.
3.App2 picks up the latest file from the /data folder of App1 and uses it.
Я использовал R и соответствующий ему пакет сборки для развертывания приложения на bluemix.
Как мне получить доступ к / data / file1 в App1 из App2, т.е. могу ли я сделать что-то подобное в исходном файле App2:
read.csv ("Приложение1 / данные / имя файла.csv"); поймет ли bluemix, на что указывает папка App1?
3 ответа
Bluemix - это платформа как услуга. По сути, это означает, что файловой системы в традиционном смысле нет. Да, ваше приложение «живет» в файловой структуре на типе виртуальной машины, но если вы в любой момент перезапустите или повторно развернете приложение, изменения в файловой системе будут потеряны.
«Правильный» способ обрабатывать эти данные, которые у вас есть, - хранить их в базе данных NoSQL
и указывать каждое приложение на эту базу данных. Bluemix предлагает несколько вариантов в зависимости от ваших потребностей.
MongoDB
, вероятно, одна из самых простых и понятных БД для использования и понимания. Cloudant
тоже очень хороший и надежный, но требует немного большего обучения.
После настройки этой БД вы можете периодически опрашивать ее на предмет новых записей или, что еще лучше, изучить возможность использования WebSockets для передачи уведомлений из одного приложения в другое в режиме реального времени.
В любом случае щелкните ссылку Catalog
в главной навигации Bluemix и найдите любую из этих служб, чтобы предоставить и привязать их к своему приложению. Затем вам нужно будет ссылаться на них через объект среды VCAP_SERVICES
, о котором вы можете узнать больше о здесь.
Использование чего-то вроде Cloudant или службы Object Storage было бы отличным способом обмена данными между двумя приложениями. Вы даже можете привязать одну и ту же службу к 2 приложениям.
Другое решение - создать микросервис, представляющий собой ваш уровень постоянства, который будет хранить ваши данные за вас. Затем вы можете создать API поверх этого, который могли бы вызывать оба ваших приложения.
Как указано выше, хранение информации на диске - не лучшая идея для облачного приложения. Зайдите на страницу http://12factor.net, там описаны запреты на создание настоящего облачного приложения.
Вы не можете получить доступ к файлам из другого приложения на bluemix. Вы должны использовать службу базы данных, такую как cloudant, для хранения вашего json. Привяжите одну и ту же службу к обоим приложениям.
Похожие вопросы
Новые вопросы
r
R — это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, используйте минимально воспроизводимые примеры, которые другие могут запустить с помощью копирования и вставки. Показать желаемый результат. Используйте dput() для данных и укажите все небазовые пакеты с помощью library(). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. Для вопросов по статистике используйте https://stats.stackexchange.com.