如何避免任务队列中的执行延迟

时间:2012-04-05 18:06:44

标签: google-app-engine task-queue scheduled-tasks

如何在排队后尽快安排推送队列任务安排执行?

我们是否需要使用Pull Queues来使用cron作业?

在执行推送队列中等待的任务时,我们会定期看到很长的延迟(20分钟)。我们将在队列中看到6,000多个任务,在最后一分钟没有执行和未执行。 然后,任务最终被安排执行,并且当队列以快速排空时,我们得到一个大的突发峰值。

例如,队列定义如下所示:

<queue>
    <name>example</name>
    <target>1</target>
    <rate>20/s</rate>
    <bucket-size>40</bucket-size>
    <max-concurrent-requests>10</max-concurrent-requests>
    <retry-parameters>
        <min-backoff-seconds>10</min-backoff-seconds>
        <max-backoff-seconds>60</max-backoff-seconds>
        <max-doublings>2</max-doublings>
    </retry-parameters>
</queue>

1 个答案:

答案 0 :(得分:1)

拉取队列和推送队列都可能出现延迟。任务队列提供可靠的任务执行,从不早于请求但有时更晚,例如从一个数据中心故障转移到另一个数据中心时。调度是尽力而为,而不是实时。