2017-05-03 18 views
0

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を取得しました。

この問題を解決してください。

ありがとうございます。

+0

このガイド(https://cloud.google.com/appengine/docs/flexible/python/using-cloud-sql)のapp.yamlに「cloud_sql_instances」という の「cloud_sql_instances」が表示されない それは助ける。 – ankitk

+0

ありがとうankitk、私は、問題を修正した、私は追加$ _SERVER ['HTTP_X_APPENGINE_CRON'] =真; in crontest.php。今作業中 – Sattanathan

答えて

1

cronがあなたのケースで不正なパスである/web/crontest.phpにアクセスしようとしているようです。私はあなたがまだ古いcron設定を生きていると思う?

+0

ありがとうTakashi、問題を修正しました。$ _SERVER ['HTTP_X_APPENGINE_CRON'] = trueを追加しました。 in crontest.php。今働いている。私は私の投稿を再編集しました – Sattanathan

関連する問題