App Engine Cron.yaml 运行 一个脚本的多个实例
App Engine Cron.yaml run multiple instances of a script
一个 运行 一个脚本的多个实例如何使用 Google App Engine 的 Cron 系统?
默认情况下,它会运行,然后在再次运行ning之前等待指定的时间间隔,这意味着只有一个实例运行s。我正在寻找的是如何获得一个需要 2 分钟以上才能 运行 每 30-60 秒启动一个新实例的脚本,无论它是否已经 运行ning,这确实假设如果多个实例 运行ning,脚本不会干扰自身。这将有效地允许脚本在同一时间段内处理多几倍的信息。
编辑,完全改写了问题。
你只能在一分钟内解决问题。为了更细粒度,您需要知道它们是否应该立即处理来自 chron 的请求的实例,以及它们是否必须先休眠 30 秒。 30 秒的睡眠用掉了 60 秒请求期限的一半。根据您希望处理的工作量,这可能需要您使用模块。
顺便说一句,我不知道为 01:00 安排的作业是否会在 恰好 01:00:00 触发(并且不是在 01:00:03).
由于 cron 服务不允许低于 1 分钟的间隔,您需要以不同的方式实现惊人的脚本启动。
一种可能性是每 2 分钟有一个 cron 条目处理程序 运行,它在触发相应脚本实例启动之间内部休眠 30 秒(或低至您的 "few seconds of each-other" 要求)。
注意: 睡眠可能会占用您的实例小时数。您 可能 能够将交错触发逻辑合并到您可能拥有的其他一些长期任务中,而不是简单地休眠。
要将实际脚本执行与 cron 处理程序(或其他长期任务)执行分离,您可以为每个脚本实例使用专用任务队列,如果需要,队列处理程序共享实际脚本代码。实际的触发将通过在相应的脚本实例队列中排队任务来完成。作为奖励,您可以通过自定义相应的队列配置来进一步控制每个脚本实例的执行。
注意:如果您的脚本执行时间超过 2 分钟的 cron 周期,您可能需要在队列配置中采取额外的预防措施,因为可能会有额外的延迟(由于排队)这可以使相应脚本实例的启动更接近下一个实例启动。
根据 Dave W. Smith 的回答,The Line 将是
every 1 minute from 00:00 to 23:59
这意味着它将每分钟创建一个新实例,即使脚本需要超过一分钟才能到达 运行。似乎无法指定秒数。
一个 运行 一个脚本的多个实例如何使用 Google App Engine 的 Cron 系统?
默认情况下,它会运行,然后在再次运行ning之前等待指定的时间间隔,这意味着只有一个实例运行s。我正在寻找的是如何获得一个需要 2 分钟以上才能 运行 每 30-60 秒启动一个新实例的脚本,无论它是否已经 运行ning,这确实假设如果多个实例 运行ning,脚本不会干扰自身。这将有效地允许脚本在同一时间段内处理多几倍的信息。
编辑,完全改写了问题。
你只能在一分钟内解决问题。为了更细粒度,您需要知道它们是否应该立即处理来自 chron 的请求的实例,以及它们是否必须先休眠 30 秒。 30 秒的睡眠用掉了 60 秒请求期限的一半。根据您希望处理的工作量,这可能需要您使用模块。
顺便说一句,我不知道为 01:00 安排的作业是否会在 恰好 01:00:00 触发(并且不是在 01:00:03).
由于 cron 服务不允许低于 1 分钟的间隔,您需要以不同的方式实现惊人的脚本启动。 一种可能性是每 2 分钟有一个 cron 条目处理程序 运行,它在触发相应脚本实例启动之间内部休眠 30 秒(或低至您的 "few seconds of each-other" 要求)。
注意: 睡眠可能会占用您的实例小时数。您 可能 能够将交错触发逻辑合并到您可能拥有的其他一些长期任务中,而不是简单地休眠。
要将实际脚本执行与 cron 处理程序(或其他长期任务)执行分离,您可以为每个脚本实例使用专用任务队列,如果需要,队列处理程序共享实际脚本代码。实际的触发将通过在相应的脚本实例队列中排队任务来完成。作为奖励,您可以通过自定义相应的队列配置来进一步控制每个脚本实例的执行。
注意:如果您的脚本执行时间超过 2 分钟的 cron 周期,您可能需要在队列配置中采取额外的预防措施,因为可能会有额外的延迟(由于排队)这可以使相应脚本实例的启动更接近下一个实例启动。
根据 Dave W. Smith 的回答,The Line 将是
every 1 minute from 00:00 to 23:59
这意味着它将每分钟创建一个新实例,即使脚本需要超过一分钟才能到达 运行。似乎无法指定秒数。