当前位置: 首页 > 面试题库 >

如何使用Google App Engine中的模块并使用Task Queue(Java)向其添加目标?

党浩阔
2023-03-14
问题内容

我的任务超过了任务队列的最后期限超过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分钟后终止执行,或者即使任务队列中的任务到期,它也会完成任务吗?

请提出建议。


问题答案:

模块和服务是一回事,它们类似于旧的后端(仍可使用,但已弃用)。

有两种使模块正常工作的基本方法:

  • 创建一个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.xmlSeehere中将队列本身配置为以特定模块为目标。



 类似资料:
  • 问题内容: 我在Java项目中的images / image.png中有一个图像。我想写一个方法,其签名如下 此方法将加载要写入的图像及其位置(左上角)处的图像,然后返回一个byte [],该字节表示与文本合并的新图像。 问题答案: 尝试这种方式:

  • 我用jmod工具创建了一个简单的文件,如下所示 接下来,我试图通过运行以下命令在该模块中执行一个类: 这导致了以下例外情况: 如果我只是将我的目录(我用来创建JMOD文件)设置为modulepath,那么一切都正常工作。 在modulepath上通常不可能有文件吗?如果是这样的话,有什么原因吗?

  • 我在Java的早期版本中使用了Maven,但现在我正试图让它在Java 10中工作。我构建了一个简单的Hello world项目,具体来说: 公共课堂测试{ }使用模块信息类: 模块maven.test{导出main;} 与本项目相关的pom为: http://maven.apache.org/xsd/maven-4.0.0.xsd" 当我构建项目时,它成功构建。然后,我从Maven中央存储库添加

  • 问题内容: 寻找一种在node中加密数据(主要是字符串)并在android应用(java)中解密的方法。 在每个节点中都成功做到了这一点(在节点中进行加密/解密,在Java中进行加密/解密),但是似乎无法使其在它们之间起作用。 可能我不是以相同的方式进行加密/解密,但是每种语言的每个库对于相同的事物都有不同的名称… 任何帮助表示赞赏。 这是一些代码:Node.js 和java 原始密钥是这样创建的

  • 我有一个观察数据表和是和否的模型。为简单起见,我只假设对组。我浪费了一些分类统计数据,我想控制选择哪一个。我知道如何使用eval做到这一点并将其保存在另一个data.table中,但我想添加到现有的data.table中,因为我每个组只有一行。任何人都可以帮我吗? 首先,我为每个组创建列联表。 然后定义统计数据 如果我使用下面几行,它会给我一个新的数据表: 如何在此示例中使用:=将结果添加到我的旧

  • 问题内容: 我正在将Swift代码集成到一个大型的Objective-C项目中,但是当我的Swift代码引用Objective-C类时,我遇到了问题。例如,假设我有: 一个叫做Objective-C的类 一个叫做Objective-C的类 我声明了一个Swift类,如下所示: 如果现在尝试通过导入Objective- C代码来使用此类,则对于和都会出现未定义的符号错误。 我可以通过导入以及在导入之