如果您对如何使用GoogleAppEngine中的模块并使用TaskQueue和Java向其添加目标?感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解如何使用GoogleAppEngine中的模
如果您对如何使用Google App Engine中的模块并使用Task Queue和Java向其添加目标?感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解如何使用Google App Engine中的模块并使用Task Queue的各种细节,并对Java向其添加目标?进行深入的分析,此外还有关于google-app-engine-如何使用Dockerfile运行Google App Engine服务器、java – 使用Google App Engine的Web服务、java – 使用Google Compute Engine作为Google App Engine Web应用程序的代理、java – 如何使用com.google.appengine.api.datastore.Text的实用技巧。
本文目录一览:- 如何使用Google App Engine中的模块并使用Task Queue(Java)向其添加目标?
- google-app-engine-如何使用Dockerfile运行Google App Engine服务器
- java – 使用Google App Engine的Web服务
- java – 使用Google Compute Engine作为Google App Engine Web应用程序的代理
- java – 如何使用com.google.appengine.api.datastore.Text
如何使用Google App Engine中的模块并使用Task Queue(Java)向其添加目标?
我的任务超过了任务队列的最后期限超过10分钟。通过查阅不同的文档,我发现使用模块可以运行一个实例,该实例可以处理长时间运行的任务,但最好甚至可以使用任务队列来完成。我使用过后端,但已弃用。
我的问题是如何将模块引入现有的App Engine项目中,以及如何使用它们来运行长期运行的任务?
以下是一段代码:
Queue queue = QueueFactory.getQueue("myqueue");TaskOptions task = TaskOptions.Builder.withUrl("/submitworker").method(Method.POST);queue.add(task);
为了使用模块添加长时间运行的任务,我必须对以上代码进行哪些更改?[“ submitworker”是一个servlet,它是长期运行的实际任务]
我已经引用了此链接,但无法执行第三步:
3.将服务声明元素添加到appengine-application.xml文件。
另外,即使我成功地将模块添加到项目中,如何使用Task Queue定位该模块?
我正在寻找有关如何在模块中使用“目标”以及在添加到任务队列时如何使用“目标”的分步过程。
即使我将长时间运行的模块目标添加到任务队列中,它还是会在10分钟后终止执行,或者即使任务队列中的任务到期,它也会完成任务吗?
请提出建议。
答案1
小编典典模块和服务是一回事,它们类似于旧的后端(仍可使用,但已弃用)。
有两种使模块正常工作的基本方法:
- 创建一个EAR并进行部署
- 作为WAR文件独立部署服务(这可能是您现在正在对默认模块执行的操作)
第二个选项可能更容易,因为这只是更改application-
web.xml的问题。您可以为每个模块提供一个存储库或分支,也可以只有一个构建过程来更改您要定位的模块。
现在,您的application-web.xml可能具有以下内容:
<application>@appId@</application><version>@appVersion@</version> <module>default</module>
改变成这样
<application>@appId@</application><version>@appVersion@</version> <module>long-running-service</module><instance-class>B1</instance-class><manual-scaling> <instances>1</instances></manual-scaling>
您可以在queue.xml
Seehere中将队列本身配置为以特定模块为目标。
google-app-engine-如何使用Dockerfile运行Google App Engine服务器
我是Docker的新手,我需要使用Dockerfile在Google App Engine服务器中运行web2py应用程序,为此,我创建了dockerfile来安装python,gae服务器和我的web2py源文件夹.
我的问题是如何使用Dockerfile启动gae服务器以及如何将现有源代码配置为gae以及如何基于docker运行容器IP运行gae服务器以在浏览器上查看我的应用程序着陆页
这是我的Dockerfile
FROM ubuntu:trusty
MAINTAINER John
#install python
RUN sudo apt-get install python --assume-yes
RUN apt-get install -y wget unzip
#install GAE
RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud- sdk.zip && unzip google-cloud-sdk.zip && rm google-cloud-sdk.zip
RUN google-cloud-sdk/install.sh --usage-reporting=true --path-update=true -- bash-completion=true --rc-path=/.bashrc --additional-components app-engine-python
ENV PATH /google-cloud-sdk/bin:$PATH
copY Testapp/ .
RUN pwd
workdir Testapp
CMD python web2py.py
#Expose the ports
EXPOSE 8081
ENTRYPOINT ["/Testapp/web2py"]
#CMD ["python","/Testapp/web2py.py"]
CMD ["/bash/"]
FROM ubuntu:trusty
MAINTAINER Chandra
#install python
RUN apt-get install -y -qq wget python unzip
#install GAE
RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.zip && unzip google-cloud-sdk.zip && rm google-cloud-sdk.zip
RUN google-cloud-sdk/install.sh --usage-reporting=true --path-update=true --bash-completion=true --rc-path=/.bashrc --additional-components app-engine-python
ENV PATH /google-cloud-sdk/bin:$PATH
workdir CFSA_Testapp
copY CFSA_Testapp/ .
RUN pwd
CMD python guestbook.py
#Expose the ports
EXPOSE 8080
CMD ["dev_appserver.py","--host=0.0.0.0","."]
我仅通过将它放在CFSA_Testapp文件夹中就使用Google’s example app对其进行了测试.
您可以使用docker run -it –rm -p 8080:8080 image_name来运行它.
然后,您只需在localhost:8080上打开浏览器就可以了.
java – 使用Google App Engine的Web服务
有谁知道如何使用Python在Goggle App Engine中完成这项工作,或者在Java中是如何做到的(不支持JAS-WX)?任何链接o样品或文章非常感谢.
谢谢 // :)
解决方法
例如,看一下Google提供的guestbook sample project,它显示HTTP响应以text / plain的形式返回:
public class GuestbookServlet extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException { UserService userService = UserServiceFactory.getUserService(); User user = userService.getCurrentUser(); if (user != null) { resp.setContentType("text/plain"); resp.getWriter().println("Hello," + user.getNickname()); } else { resp.sendRedirect(userService.createLoginURL(req.getRequestURI())); } } }
此外,app engine google group是一个了解更多,提出问题和查看示例代码的好地方.
java – 使用Google Compute Engine作为Google App Engine Web应用程序的代理
我在Google App Engine上有一个Java Web应用程序,它向外部API发出请求. API最近需要将IP地址列入白名单才能访问其服务.由于GAE不提供静态IP,我理解一种解决方案是设置GCE实例(使用静态IP)并将其用作GAE应用程序发出的外部请求的代理.
我已经使用Debian GNU / Linux 9建立了一个f1-micro实例,并根据the documentation创建了一个静态外部IP地址.
如何安装Nginx并设置GAE以将请求路由到GCE代理?
>使用静态IP地址启动计算引擎.这是我们给客户的IP地址
>在计算引擎上安装Squid(https://help.ubuntu.com/lts/serverguide/squid.html)
>然后,我们通过代理服务器重定向来自App Engine的所有呼叫.您没有列出您正在使用的语言,但对于PHP,这意味着在CURL操作中添加以下两行:
curl_setopt($ch,CURLOPT_PROXY,“http://”.$_SERVER [‘SQUID_PROXY_HOST’].“:”.$_SERVER [‘SQUID_PROXY_PORT’]);
curl_setopt($ch,CURLOPT_PROXYUSERPWD,$_SERVER [‘SQUID_PROXY_USER’].“:”.$_SERVER [‘SQUID_PROXY_PWD’]);
需要注意的一点是,根据您正在进行的呼叫次数,微型实例可能不适合您.我们最初在微型盒子上设置我们的代理服务器,但每隔几天就要重新启动它.我们最终切换到一个标准的盒子,并没有遇到任何问题,因为.
java – 如何使用com.google.appengine.api.datastore.Text
我使用Quercus在谷歌应用引擎上运行PHP,并使用下面的代码将值插入GAE数据存储区(BigTable).
<?PHP
import com.google.appengine.api.datastore;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
$entity = new Entity("test");
$entity->setProperty('story',' --- more than 500 char ---');
$dataService = DatastoreServiceFactory::getDatastoreService();
$dataService->put($entity);
?>
但由于故事值超过500个字符,因此返回流动错误.
error:
com.caucho.quercus.QuercusException: com.google.appengine.api.datastore.Entity.setProperty: story: String properties must be 500 characters or less. Instead, use com.google.appengine.api.datastore.Text, which can store strings of any length.
我不知道关于java的任何事情.
有谁知道如何在我的PHP代码中使用com.google.appengine.api.datastore.Text.
谢谢
解决方法:
这会有用吗?
<?PHP
import com.google.appengine.api.datastore;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Text;
$entity = new Entity("test");
$TextValue = new Text(' --- more than 500 char ---');
$entity->setProperty('story',$TextValue);
$dataService = DatastoreServiceFactory::getDatastoreService();
$dataService->put($entity);
?>
关于如何使用Google App Engine中的模块并使用Task Queue和Java向其添加目标?的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于google-app-engine-如何使用Dockerfile运行Google App Engine服务器、java – 使用Google App Engine的Web服务、java – 使用Google Compute Engine作为Google App Engine Web应用程序的代理、java – 如何使用com.google.appengine.api.datastore.Text等相关内容,可以在本站寻找。
本文标签: