我有一个云代码功能,它运行了几个星期,然后昨天开始崩溃。它导致整个解析服务器关闭并且不产生任何日志记录,这使得调试非常困难。我尝试使用节点直接调用 Stripe API 并将我的客户 ID 字符串硬编码,它运行正常。有什么想法为什么这会在 Parse 中随机停止工作?
这是我的云功能,它所做的就是获取活跃用户的 Stripe ID 并检索他们的客户对象(客户 ID 已检索并成功记录):
var stripe = require('stripe')(STRIPE_KEY);
var winston = require('winston');
var logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
filename: 'logs/parsecloud.log',
handleExceptions: true,
humanReadableUnhandledException: true
})
]
});
Parse.Cloud.define('customer', function(req, res) {
if (!req.user) {
logger.error('/customer no user session');
res.error("No user session");
return;
}
var stripeId = req.user.get('stripeId');
logger.info('getting stripe customer for', stripeId);
stripe.customers.retrieve(stripeId).then(
function(customer) {
logger.info('got customer for ', stripeId);
res.success(customer);
},
function(err) {
logger.error('customer error', stripeId, err);
res.error(err);
}
);
});
答案1
我通过使用 npm 重新安装解析服务器解决了这个问题。我使用的是旧版本的解析服务器,每隔几个月它就会随机停止工作,唯一的解决方法是删除它并重新安装。也许是某些缓存或某些东西随着时间的推移变得太大,最终导致了这个问题。