PHPアプリケーションをGoogle App engine Standard Environment to Flexible environmentから移行しています。Google App Engineの柔軟な環境でCronジョブが失敗しました
私のアプリケーションは、データベースとうまく動作し、グリッドを送信します。しかし、Cronジョブは失敗します。
私はGAE Flexible環境でCronジョブを実行するのに欠けているものが見つかりませんでした。サンプルアプリケーションコードhereを付けました。
app.yamlを
runtime: php
env: flex
runtime_config:
document_root: web
handlers:
- url: /crontest
script: crontest.php
- url: .*
script: index.php
#[START env]
env_variables:
MYSQL_DBNAME: CRONDB
MYSQL_USER: root
MYSQL_PASSWORD: root123
MYSQL_CONNECTION: /cloudsql/project-id:us-central1:testphp7
#[END env]
#[START cloudsql_settings]
# Use the connection name obtained when configuring your Cloud SQL instance.
beta_settings:
cloud_sql_instances: "project-id:us-central1:testphp7"
#[END cloudsql_settings]
cron.yaml
- description: cron test
url: /crontest
schedule: every day 17:00
timezone: Asia/Kolkata
ウェブ/ connection.php
<?php
$con = new mysqli(null,$_SERVER['MYSQL_USER'],$_SERVER['MYSQL_PASSWORD'],$_SERVER['MYSQL_DBNAME'],null,$_SERVER['MYSQL_CONNECTION']);
?>
ウェブ/ crontest.php
<?php
include "connection.php";
$ATERM_spcallstmt="INSERT INTO SAMPLE(TEST_NO)VALUES('9876')";
$con->query($ATERM_spcallstmt);
?>
ウェブ/ index.phpを
<?php
echo " Test Cron in FE";
?>
テーブルクエリを作成します。
APIコンソールからCREATE TABLE SAMPLE(TEST_NO VARCHAR(250));
ログイン
18:57:00.000172.18.0.3 - - [02/May/2017:13:27:00 +0000] "GET /crontest.php HTTP/1.1" 404 162 "-" "AppEngine-Google; (+http://code.google.com/appengine)" { textPayload: "172.18.0.3 - - [02/May/2017:13:27:00 +0000] "GET /crontest.php HTTP/1.1" 404 162 "-" "AppEngine-Google; (+http://code.google.com/appengine)" " insertId: "epwcgng8mcw86z" resource: {…} timestamp: "2017-05-02T13:27:00Z" labels: {…} logName: "projects/project-id/logs/appengine.googleapis.com%2Fstdout" }
HTTP 404 & Cron Failedを取得しました。
この問題を解決してください。
ありがとうございます。
このガイド(https://cloud.google.com/appengine/docs/flexible/python/using-cloud-sql)のapp.yamlに「cloud_sql_instances」という の「cloud_sql_instances」が表示されない それは助ける。 – ankitk
ありがとうankitk、私は、問題を修正した、私は追加$ _SERVER ['HTTP_X_APPENGINE_CRON'] =真; in crontest.php。今作業中 – Sattanathan