HTTP/Twilio请求通过PHP在谷歌应用引擎中重复



我正试图将一个使用Twilio的PHP应用程序迁移到谷歌应用程序,但遇到了一些障碍。作为一个简单的测试,我从我创建的谷歌应用程序中向手机发送了一条短信。它发送得很好,但我收到了两次信息;为了确认它实际上执行了两次,我发送了epoch时间——它们相距约1秒。

我查看了日志,看到了这一点——"这个请求导致为你的应用程序启动了一个新的进程,从而导致你的应用代码第一次加载。因此,这个请求可能比你的应用软件的典型请求花费更长的时间,使用更多的CPU。"我尝试完全删除Twilio的使用,并用一个简单的"Hello World"回显代替,该请求的日志中出现了相同的消息。

我该如何避免这种行为?

更新

以下是我的Requestb.in测试中使用以下代码得到的头。垃圾箱被同一个IP地址击中了两次——我只去了应用程序的页面一次。

<?php
$result = file_get_contents('http://requestb.in/BINID');
echo $result;

标头-

首次请求:用户代理:AppEngine Google;(+http://code.google.com/appengine;appid:s~MYAPP)连接:关闭接受编码:gzipX请求Id:e7583bda-dfeb-4431-92a5-aa4af0bf06e8主机:requestb.in

第二个请求:用户代理:AppEngine Google;(+http://code.google.com/appengine;appid:s~MYAPP)X请求-Id:e766375b-bea8-4b79-a869-e2603309bec7接受编码:gzip主机:requestb.in连接:关闭

第二次更新

我将epoch时间作为GET变量添加到requestb.in地址中,bin被完全相同的epoch击中两次,两个不同的IP地址,间隔一秒。因此,这告诉我,代码执行了一次,但不知何故从两个IP地址访问了两次bin。有时它似乎只有一个IP地址。真的很困惑。。我甚至用一个新的应用程序从头开始尝试,结果也是一样。

我想你会发现这条消息"此请求导致为你的应用程序启动了一个新进程"是无关的。

除非您使用预热请求,否则如果启动实例来服务面向用户的请求,您将始终看到此消息。

我会看看你的代码,看看消息发送代码是如何执行两次的。试着对发送代码进行一些日志记录,看看你是否在同一个请求中收到了两次日志消息。

最新更新