gpt4 book ai didi

google-app-engine - 为什么任务名称包含 "now/30"?

转载 作者:行者123 更新时间:2023-12-04 06:51:56 26 4
gpt4 key购买 nike

在“Google App Engine 数据管道”的视频/PDF 中,Brett 将“now/30”放入任务名称,并指出他稍后会解释原因,但不知何故他从未这样做过。 :)
http://www.youtube.com/watch?v=zSDC_TU7rtc#t=41m35

task_name = '%s-%d-%d' % (sum_name, int(now / 30), index)

你知道原因吗?这与不能重复使用任务名称的 7 天期限有关吗?

Link to the session page

最佳答案

Brett Slatkin's own explanation

[布雷特]
大家好,

任务名称的 int(time.time()/30) 部分是为了防止队列停顿。当内存缓存被驱逐时,工作索引计数器将被重置为零。这意味着新的 fork-join 工作项可能会插入与已插入任务同名的任务。通过在任务名称中包含约 30 秒的时间窗口,我们确保此问题只能持续约 30 秒。这也是当您看到 TombstonedTaskError 异常时应该引发异常的原因。

如果时钟不稳定,最坏的情况是运行两个任务来完成扇入工作,而不是一个,这在许多情况下是可以接受的权衡,也是使用任务队列 API 时的基本可能性。这可以使用鸽巢确认实体来缓解,就像我在物化 View 示例中使用的那样。

希望有所帮助,
[/布雷特]

关于google-app-engine - 为什么任务名称包含 "now/30"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2992652/

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