如何在 Google Appengine 中将名为“gcinfo”(带有 firebase 输出的网络爬虫)的单个 Go 程序作为 cron 运行?我能够创建一个项目 ID 并使用 App SDK 上传 Go 程序。cron 作业按照 cron.yaml 中的定义每 15 分钟执行一次。没有错误。但是我在日志中没有发现输出,也没有写入 firebase。在 app.yaml、gcinfo.yaml 和 cron.yaml 中进行了大量更改后,没有结果或出现类似错误(错误代码 204)。我现在对 yaml 文件中的设置完全感到困惑。有人可以给我或指出这些设置的简单示例吗?我想每 15 分钟在应用程序引擎中以 cron 的形式运行一个 Go 程序。我的项目结构是:带有 app.yaml 和 cron.yaml 的 myproject 文件夹myproject 子文件夹“hello”与 hello.yaml 和简单的 hello.go 示例与“hello world!”带有 gcinfo.yaml 和 gcinfo.go 的 myproject 子文件夹“gcinfo”(使用 firebase-output 使用 webcrawler)”应用程序.yamlapplication: myprojectversion: 1runtime: goapi_version: go1handlers:- url: /.* script: _go_appcron.yamlcron:- description: Ausfuehrung des tasks gcinfourl: /gcinfoschedule: every 15 minutes from 05:30 to 23:00timezone: Europe/Berlintarget: gcinfogcinfo.yamlapplication: myprojectmodule: gcinfo#version: 1runtime: goapi_version: go1handlers:- url: /gcinfo\.*script: gcinfo\gcinfo.go我的 gcinfo.go 具有以下结构package gcinfoimport (...)....func gcinfo() {....}“goapp deploy”中这个配置没有错误,appengine每15分钟反应6ms,但是go programm gcinfo没有输出。我已经尝试将 gcinfo 设为 main 并得到相同的结果。
1 回答
开满天机
TA贡献1786条经验 获得超13个赞
我找到了一个解决方案,现在 cron 作业运行并在作业控制中写入注释。
myproject 文件夹中的 cron.yaml
cron:
- description: Ausfuehrung des tasks gcinfo
url: /gcinfo
schedule: every 15 minutes from 05:30 to 23:00
timezone: Europe/Berlin
子文件夹 gcinfo 中的 app.yaml
application: myproject
module: gcinfo
version: 1
runtime: go
api_version: go1
handlers:
- url: /gcinfo
script: _go_app
以及 gcinfo.go(gcinfo 子文件夹)中的主要变化
package gcinfo
import (
"net/http"
...
"appengine"
"appengine/urlfetch"
)
func init() {
http.HandleFunc("/gcinfo", gcinfo)
}
...
func gcinfo(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
...
}
仅编写 firebase 引擎不适用于 appengine。我将不得不做更多的研究。
- 1 回答
- 0 关注
- 194 浏览
添加回答
举报
0/150
提交
取消