如何在App Engine网站的后台持续运行脚本?

1 投票
1 回答
1002 浏览
提问于 2025-04-18 07:34

我正在尝试使用Google App Engine(Python)来制作一个简单的网页应用。我想在数据存储中保持一个数字x,这个数字模拟一个随机漫步。我需要一个脚本全天候运行,每秒随机选择增加或减少x(并把这个变化保存到数据存储中)。用户应该能通过一个网址查看x的当前值。

我考虑了两种方法来解决这个持续运行脚本的问题:

1) 我可以有一个管理员访问的页面,在这个页面上用JavaScript运行一个持续循环,每秒向服务器发送一个AJAX请求来更新x。如果我把这个页面在我的电脑上保持24小时打开,这应该是可行的。但这个方法的问题在于,如果我的电脑崩溃了,脚本也会随之停止。

2) 我可以使用CRON作业。但作业之间的间隔不能小于1分钟,所以这个方法并不太合适。

看起来应该有一个简单的方法,可以在Google App Engine上持续运行一个只存在于服务器端的脚本。

我很感激任何建议。谢谢你的时间!

1 个回答

3

使用模块来启动一个后端实例(可以通过编程方式或者访问一个只有管理员能用的特殊网址)。在这个实例运行期间,执行你的脚本。

要注意的是,实例可能会崩溃,就像你的电脑可能会死机一样。因此,选择一个谷歌计算引擎的实例(选最小的那种)可能会比使用应用引擎的实例更好。并且,计算引擎的实例通常会便宜很多。

虽然计算引擎的实例也有可能失败,但这种情况发生的可能性要小得多。你可以采取一些措施来实现故障转移(比如一个实例在生成随机数,而另一个实例可以在其他平台上等待第一个实例失败),不过这样做显然会花费更多。

撰写回答