记录每个已发布消息并将其保存到我的服务器数据库的正确方法是什么。
我可以想到两个选项:
有关性能和成本的最佳实践是什么?
我们写了一篇关于right way to log JSON Messages to a Private Database的文章。
虽然存在许多方法。一个是最好的。使用PubNub Functions。您将异步地将消息可靠地保存到数据库中。使用OnAfter发布事件。您的数据库需要通过安全的HTTPS端点访问。
PubNub不会使用FTS Indexing为您的邮件编制索引;在写作时。您可能希望使用数据库进行全文搜索索引,或使用https://www.algolia.com/等API提供程序进行全文搜索。
数据很有价值。 AI和ML允许您使用Tensorflow从您的数据中创建洞察力。您可能希望对邮件内容运行数据分析。使用EMR / Hadoop或其他大数据分析软件。
您将使用PubNub Functions通过以下步骤将您的消息异步保存到数据库系统中。
开始很容易。假设您已经有一个消息流发布到PubNub数据通道。按照这些简单的步骤。您将成功创建每个Publish事件触发的实时函数。
*
感兴趣。*
频道上创建一个新的OnAfter事件处理程序。// Request Handler
export default request => {
return save(request).then( () => request.ok() );
}
// Async Logging/Save of JSON Messages
function save( data, retry=3 ) {
const xhr = require('xhr');
const post = { method : "POST", body : request.message };
const url = "https://my.company.com/save"; // <-- CHANGE URL HERE
// save message asynchronously
return xhr.fetch( url, post ).then( serverResponse => {
// Save Success!
}).catch( err => {
// Retry
if (retry > 0) save( data, --retry );
});
}