我正在使用 Facebook API 从我的帖子中检索评论。
大多数时候,当某个帖子的评论超过 25 条时,我会收到以下分页信息:
{
//COMMENT DATA
"paging": {
"cursors": {
"before": "",
"after": "WTI5dGJXVnVkRjlqZAFhKemIzSTZAOekl4Tmprd016WTNNVFk0TXprNU1qb3hOalE0TmpZAM05UVXgZD"
},
"next": "https://graph.facebook.com/v12.0/165099760197787_7215028868538139/comments?access_token=ACCESS_TOKEN&pretty=1&limit=25&after=WTI5dGJXVnVkRjlqZAFhKemIzSTZAOekl4Tmprd016WTNNVFk0TXprNU1qb3hOalE0TmpZAM05UVXgZD"
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果没有其他页面,我会得到这个(没有“下一个”值):
{
//COMMENT DATA
"paging": {
"cursors": {
"before": "WTI5dGJXVnVkRjlqZAFhKemIzSTZAOekl4TlRNNU56QTJOVEUyTnprNE5qb3hOalE0TmpReE16WXkZD",
"after": "WTI5dGJXVnVkRjlqZAFhKemIzSTZAOekl4Tmprd016WTNNVFk0TXprNU1qb3hOalE0TmpZAM05UVXgZD"
}
}
}
Run Code Online (Sandbox Code Playgroud)
一切都与上述配合良好。但有时,我得到的分页信息没有任何分页光标,尽管肯定有超过 25 条评论。我该如何用这个来分页数据?知道为什么它给我的分页数据不完整吗?它看起来像这样:
{
//COMMENT DATA
"paging": {
"next": "https://graph.facebook.com/v12.0/165099760197787_1346071832565247/comments?access_token=ACESS_TOKEN&pretty=1&limit=25&after"
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过应用引擎运行几个长时间运行的脚本。我是初学者,这是我使用 App Engine 和 express 的第一个项目。
我正在使用 express 处理 Node 中的请求。
当我(或 cron 作业)向我的任何端点发送请求时,脚本似乎运行良好,直到大约 5-10 分钟后的随机点,我得到以下日志:
我无法弄清楚为什么会发生这种情况。
我的 app.yaml:
runtime: nodejs10
instance_class: B2
basic_scaling:
max_instances: 25
idle_timeout: 12m
Run Code Online (Sandbox Code Playgroud)
请求处理程序代码:
app.get("/longRunningFunctionOne", async (req, res) => {
await longRunningFunctionOne();
res.send("DONE");
});
app.get("/longRunningFunctionTwo", async (req, res) => {
await longRunningFunctionTwo();
res.send("DONE");
});
app.get("/_ah/start", async (req, res) => {
res.sendStatus(200);
});
Run Code Online (Sandbox Code Playgroud)
在本地运行时绝对没有问题。知道我在做什么来获得过早的 /_ah/stop 请求吗?因为我使用的是基本缩放,所以我不会超时。谷歌将其描述为:
“HTTP 请求和任务队列任务为 24 小时。如果您的应用程序未在此时间限制内返回请求,App Engine 将中断请求处理程序并发出错误以供您的代码处理。”
有任何想法吗?也许与我如何处理 /_ah/start 这只是在黑暗中的一个镜头有关?
google-app-engine timeout node.js express google-cloud-platform