Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在用于开发的服务之间共享Taskqueue和数据存储本地计算机-Google App Engine Java标准环境_Java_Google App Engine - Fatal编程技术网

无法在用于开发的服务之间共享Taskqueue和数据存储本地计算机-Google App Engine Java标准环境

无法在用于开发的服务之间共享Taskqueue和数据存储本地计算机-Google App Engine Java标准环境,java,google-app-engine,Java,Google App Engine,具有多个服务的GAE应用程序: module_1 - default module_2 - backend using datastore module_3 - Taskqueues and cron job module_2作为依赖项添加到module_3中,并使用module_2中使用的相同数据存储实例。所有模块(1、2、3和数据存储)都位于测试和生产中部署的不同虚拟机中 和我在本地开发机器中使用命令部署的代码相同 gradle appengineRun所有三个模块 /module.$gr

具有多个服务的GAE应用程序:

module_1 - default
module_2 - backend using datastore
module_3 - Taskqueues and cron job
module_2
作为依赖项添加到
module_3
中,并使用
module_2
中使用的相同
数据存储
实例。所有模块(1、2、3和数据存储)都位于测试和生产中部署的不同虚拟机中

和我在本地开发机器中使用命令部署的代码相同
gradle appengineRun
所有三个模块
/module.$gradle appengineRun
,所有项目都创建自己的数据存储和任务队列

我尝试过以下几点:

1


*/favicon.ico
单元1
simple-sample.appspot.com/
单元1
*/v2/*
模块2
*/v3/*
单元3
  • :如果未尝试此操作,则需要进行大量重构,例如从
    module_3
    module_1
    的电影
    cron.xml
    queue.xml
    。由于该系统在阶段和生产中使用相同的配置,因此必须有方法使其在本地工作

  • 无论是否实际将后端转换为服务,您需要记住的是,队列、数据存储索引、cron和调度配置都是应用程序级配置,由所有应用程序的服务共享(它们实际从哪个服务部署并不重要)。但是,在本地开发时,开发服务器可能需要一些实际存在于每个服务中的文件(并且包含跨服务一致的配置)。看看有什么关联。根据需要,类似的方法可应用于其他应用程序级共享配置

    由于您的服务共享数据存储,为了正确地执行本地开发,您还需要一个数据存储模拟。这意味着:

    • 在同一个本地开发服务器内运行所有服务,并由该服务器执行数据存储仿真,可能根据#3参考使用不同的端口,或者
    • 在其自己的开发服务器中运行每个服务,但让所有这些开发服务器不自己模拟数据存储,而是连接到云的单个实例,请参见(python上下文)
    但我不是Java用户,我不确定这些方法是否适用于Java,开发服务器与我使用的python服务器有很大不同

    旁注:您不需要为
    default
    模块添加调度规则-默认情况下,在该模块中发送与任何其他调度规则都不匹配的请求

    <?xml version="1.0" encoding="UTF-8"?>
    <dispatch-entries>
        <dispatch>
            <!-- Default module serves the typical web resources and all static resources. -->
            <url>*/favicon.ico</url>
            <module>module_1</module>
        </dispatch>
        <dispatch>
            <!-- Default module serves simple hostname request. -->
            <url>simple-sample.appspot.com/</url>
            <module>module_1</module>
        </dispatch>
        <dispatch>
            <!-- Send all mobile traffic to the mobile frontend. -->
            <url>*/v2/*</url>
            <module>module_2</module>
        </dispatch>
        <dispatch>
            <!-- Send all work to the one static backend. -->
            <url>*/v3/*</url>
            <module>module_3</module>
        </dispatch>
    </dispatch-entries>