记录每条已发布消息并将其保存到我的服务器数据库的正确方法是什么。
我可以想到两个选项:
有关性能和成本的最佳做法是什么?
答案 0 :(得分:9)
我们撰写了一篇文章,讨论right way to log JSON Messages to a Private Database。
虽然存在许多方法。一个是最好的。使用PubNub Functions。您将异步将消息可靠地保存到数据库中。使用 OnAfter Publish 事件。您的数据库需要通过安全的HTTPS端点访问。
PubNub不会使用FTS Indexing为您的邮件编制索引;在写作时。您可能希望使用数据库进行全文搜索索引,或使用https://www.algolia.com/等API提供程序进行全文搜索。
数据很有价值。 AI和ML允许您使用Tensorflow从数据中创建洞察力。您可能希望对邮件内容运行数据分析。使用EMR / Hadoop或其他大数据分析软件。
您将使用PubNub Functions通过以下步骤轻松地将消息异步保存到数据库系统中。
入门很容易。假设您已经有一个消息流发布到PubNub数据通道。按照这些简单的步骤。您将成功创建每个发布活动触发的实时功能。
*
感兴趣。*
频道上创建新的 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 );
});
}