gpt4 book ai didi

java - 如何在 App Engine 中创建针对服务和版本的 cron 作业?

转载 作者:行者123 更新时间:2023-12-02 02:17:17 28 4
gpt4 key购买 nike

我想要一个 cron 作业在特定服务和版本 (App Engine) 上调用我的端点。

我使用以下配置创建了一个 cron 作业:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
<cron>
<url>/CleanupRealtimeDatabase</url>
<target>dev-dot-admin</target>
<description>Cleanup Realtime Database (Dev)</description>
<schedule>every 24 hours</schedule>
</cron>
</cronentries>

这将调用 http://dev-dot-admin.myapp.appspot.com/CleanupRealtimeDatabase

这不起作用,因为它无法组合 -dot- 和 .

所以唯一的解决方案是使用 -dot- 两次或使用 。两次。我无法控制网址中的第二个点(它不是配置的一部分)。但是当我将点更改为 .在我上面的配置中,我收到以下错误:

Bad configuration: XML error validating /CleanupRealtimeDatabase dev.admin Cleanup Realtime Database (Dev) every 24 hours against /Users/user/sdk/google-cloud-sdk/platform/google_appengine/google/appengine/tools/java/docs/cron.xsd Caused by: cvc-pattern-valid: Value 'dev.admin' is not facet-valid with respect to pattern '[a-z\d-]{1,100}' for type 'target-Type'.

不知道如何解决这个问题?感觉就像 App Engine 工具中的一个错误。

最佳答案

这将不起作用,因为将接收 objective-c ron 请求的(单个)服务版本不受 cron 配置控制。来自 Cron job definitions 中的 行(强调我的):

The target string is prepended to your app's hostname. It is usually the name of a service. The cron job will be routed to the version of the named service that is configured for traffic.

Warning: Be careful if you run a cron job with traffic splitting enabled. The request from the cron job is always sent from the same IP address, so if you've specified IP address splitting, the logic will route the request to the same version every time. If you've specified cookie splitting, the request will not be split at all, because there is no cookie accompanying the request.

If the service name that is specified for target is not found, then the Cron request is routed to either the default service, or to the version of your app that is configured to receive traffic. For more information about routing, see How Requests are Routed.

但是,由于 cron 服务只不过是根据计划发送的 GET 请求,您可以拥有一个通用的 cron 配置,并在其处理程序内部向自己发出更具体的 HTTP(S) 请求您想要的任何网址。

您可以使用apps.services.versions API,以便动态构建这些每个服务版本对 URL 的正确列表。

关于java - 如何在 App Engine 中创建针对服务和版本的 cron 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49128371/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com