为了账号安全,请及时绑定邮箱和手机立即绑定

在 Google Appengine 上以 cron 作业的形式执行 Go 程序(网络爬虫)

在 Google Appengine 上以 cron 作业的形式执行 Go 程序(网络爬虫)

Go
不负相思意 2021-09-10 17:38:38
如何在 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。我将不得不做更多的研究。


查看完整回答
反对 回复 2021-09-10
  • 1 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信