이 문제는 dev 모드 (Eclipse ...)에서 테스트되었으며 발생합니다.앱 엔진 동적 백엔드가 dev 모드에서 예상대로 작동하지 않습니다.
내가 (backends.xml에서) 하나의 구성 백엔드가 : 당신이 명시 적으로 '동적'으로 설정되어시피
<backends>
<backend name="example">
<class>B8</class>
<options>
<instances>1</instances>
<public>false</public>
<dynamic>true</dynamic>
</options>
</backend>
</backends>
합니다.
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>backend_test</servlet-name>
<servlet-class>BackendTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>backend_test</servlet-name>
<url-pattern>/_ah/start</url-pattern>
</servlet-mapping>
</web-app>
.. 백엔드 그냥 일반 서블릿 엔트리 포인트 :
이
내 web.xml 파일입니다. 내가 제대로 this doc line을 이해한다면INFO: The server is running at http://localhost:8888/
Backend started!
Backend terminating!
: 나는 F11를 쳤고 응용 프로그램을 디버깅을 시작할 때, 이것은 콘솔에 출력 지금
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class BackendTest extends HttpServlet
{
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
System.out.println("Backend started!");
// ............
System.out.println("Backend terminating!");
}
}
:
그리고 여기 백엔드의 자바 코드입니다 내가 /_ah/start
(http)을 요청할 때까지 시작해서는 안됩니다. 동적 백엔드를 시작하면
는, 앱 엔진은 트래픽을 받아 들일 수 있지만,/_ah 시작/요청은 그것의 첫 번째 사용자의 요청을 수신 때까지 인스턴스로 전송되지 않습니다 : 그것은 분명히 말한다.
또 다른 부작용은,이 문제에 관련, 백엔드는 결코 것이다 "정지"(나는 http://127.0.0.1:8888/_ah/admin/backends의 관리 영역에서 보는 바와 같이), 나는 그것이 "실행 중"상태로 남아 의미한다.
(위의 코드에서 콘솔에서 명확하게 인쇄 된 것처럼) 종료 된 후 몇 분 후에 종료하지 않아야합니까? (나는 약 20 분을 기다리고있다).
내가 뭘 잘못하고 있니?
하지만 최종 목표는 "작업"실행과 마찬가지로 "백엔드"컨텍스트에서 일부 코드를 실행하는 것입니다. 나는 "백엔드"CPU/RAM 전원 및 제한 시간 때문에.
저를 계몽하십시오. 감사합니다.
올바르게 이해하면 https://developers.google.com/appengine/docs/java/backends/overview#Startup에 따라/_ah/start를 호출 할 수 없습니다. 백엔드 인스턴스가 첫 번째 요청 (동적 백엔드)을받을 때 앱 엔진에 의해 호출됩니다. –