gpt4 book ai didi

google-app-engine - 如何以更便宜的方式使用 Google App Engine Cron 作业?

转载 作者:行者123 更新时间:2023-12-04 10:56:43 25 4
gpt4 key购买 nike

我有一个推特机器人,它每天发布几次内容。这是我的 cron.yaml文件。

cron:
- description: "twitter instagram scraper"
url: /scrape/twitter_intra
schedule: every 24 hours
target: scraper
- description: "USD to LKR scraper"
url: /scrape/exRates
schedule: every 1 hours
target: scraper
- description: "last 24 hour weather"
url: /scrape/weather_last24hours
schedule: every day 12:00
target: scraper
- description: "tweet out last 24 hour weather"
url: /tweet/weather_last24hours
schedule: every day 13:00
target: twitter
- description: "tweet out exchange Rate USD to LKR"
url: /tweet/exRates
schedule: every day 7:00
target: twitter

这是一种请求方法的示例,
app.get(`/tweet/weather_last24hours`, async (req, res, next) => {
console.log(`Tweet!! last 24 hours`);

try {
//await tweetText('This is a test');
const report = await getWeatherLast24Hours();
const content = makeTweetLast24HourWeather(report);

console.log(content);
await tweetText(content);

res.status(200)
.set('Content-Type', 'text/plain')
.send(`Completed Successfully...!`)
.end();
} catch (error) {
next(error);
}
});

现在它工作正常,但它每天花费我 2.2 美元,因为我必须通过执行以下操作来保持一个实例一整天。
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
console.log(`App listening on port ${PORT}`);
console.log('Press Ctrl+C to quit.');
});

我尝试删除这部分代码,假设 GCP cron 作业可以自己启动一个实例并运行该任务。尽管 cron 作业本身能够启动实例,但任务失败并显示 500 错误代码和以下消息。

This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application.



日志中的错误消息。我尝试了几次并得到了相同的结果。
  • 是否有解决方案,通过在 cron 作业执行之前启动一个实例?
  • 新引入的云调度程序可以提供帮助吗?
  • 难道我做错了什么?

  • 先感谢您。

    最佳答案

    您的 500是一个警告,告诉您一些您已经知道的事情:由于需要预热新实例,启动时间会更长。这本身不一定是问题,除非您注意到您的任务没有正常运行。

    使用 Cloud Scheduler ,考虑将您的应用程序分解为 Cloud Functions .您可以为 5 个端点中的每一个构建一个单独的函数,以及包含共享逻辑的第六个端点(例如 getWeatherLast24Hours())。然后,您可以使用 Cloud Scheduler 按计划调用它们。

    使用 Cloud Functions + Scheduler 运行的成本将接近于零,因此您需要进行自己的 ROI 评估,以确定开发工作是否值得节省。

    关于google-app-engine - 如何以更便宜的方式使用 Google App Engine Cron 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59122777/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com