【发布时间】:2018-01-13 14:41:19
【问题描述】:
我目前参与的项目在 GAE 上托管其应用程序。昨晚深夜,我使用 cron.yaml 将我们的应用程序部署到 QA 服务器(也托管在 GAE 上),该 cron.yaml 有一个注释掉的 cron 作业。
部署完成后立即运行 cron 任务。对此有什么解释吗?
下面是相关的 cron.yaml 和日志。在任何给定时间,我们只有一个 qa 后端实例。
我们的堆栈是 flask/python 和 angular 前端。我的机器:macOS Sierra 10.12.1,GAE init v.4.0.1
gulpfile:
`
var $, gulp, minimist;
gulp = require('gulp-help')(require('gulp'));
minimist = require('minimist');
$ = require('gulp-load-plugins')();
gulp.task('deploy', 'Deploy project to Google App Engine.', function() {
var k, options, options_str;
options = minimist(process.argv);
delete options['_'];
options_str = '--skip_sdk_update_check';
for (k in options) {
if (options[k] === true) {
options[k] = '';
}
options_str += k.length > 1 ? " --" + k + " " + options[k] : " -" + k + " " + options[k];
}
return gulp.src('run.py').pipe($.start([{
match: /run.py$/,
cmd: "appcfg.py update main " + options_str
}]));
});
gulp.task('server', 'Start the local server. Available options:\n -o
HOST - the host to start the dev_appserver.py\n -p PORT - the port
to start the dev_appserver.py\n -a="..." - all following args are
passed to dev_appserver.py\n', function() {
var argv, k, known_options, options, options_str;
argv = process.argv.slice(2);
known_options = {
"default": {
p: '',
o: '',
a: ''
}
};
options = minimist(argv, known_options);
options_str = '-s';
for (k in known_options["default"]) {
if (options[k]) {
if (k === 'a') {
options_str += " --appserver-args \"" + options[k] + "\"";
} else {
options_str += " -" + k + " " + options[k];
}
}
}
return gulp.src('run.py').pipe($.start([
{
match: /run.py$/,
cmd: "python run.py " + options_str
}
]));
});
`
谢谢!
【问题讨论】:
-
您在开发者控制台中看到 cron 作业了吗?您在部署之前启用了 cron 吗?
-
控制台中没有出现,我部署的时候也没有开启。
-
这可能是对该 URL 的手动请求吗?
-
payload 表明请求来自 cron。
-
你是如何部署的?
标签: python google-app-engine flask cron google-cloud-platform