【问题标题】:celery: "Substantial drift from"celery:“大量漂移”
【发布时间】:2014-01-11 18:53:06
【问题描述】:

我的分布式系统上的 celery 存在很大问题。我有几台不同本地化的机器,我的日志文件中有很多警告,例如:

“来自 celery@host [...] 的大量漂移”

我能够设置日期以返回相同的值(即使机器位于不同的国家),但 python print(utcoffset()) 在主服务器和节点上返回不同的结果。

如何解决这个问题?除了 utcoffset() 应该返回相同的值之外,我找不到任何好的解决方案 - 但是如何?

感谢您的帮助。

【问题讨论】:

  • 你有什么代码可以告诉我们你在做什么/做错了吗?
  • utcoffset() 在一台机器上返回 2,在第二台机器上返回 3
  • 通过serverfault.com 提出这个问题,人们将能够告诉您如何设置系统以使您的服务器时钟基本保持一致。这是一项艰巨的任务,但有很好的解决方案。
  • 还要确保您运行的是 celery 3.1.7,因为在早期版本中计算 utc 偏移量时存在错误。

标签: python celery


【解决方案1】:

我在开花的时候遇到了类似的问题:

[W 161208 08:42:00 state:74] Substantial drift from celery@host.com may mean clocks are out of sync.  Current drift is 10800 seconds.  [orig: 2016-12-08 08:42:00.722560 recv: 2016-12-08 05:42:00.719938]

使用的版本:

celery==3.1.23 (and 3.1.25)
flower==0.9.1
rabbitmq 3.5.6

有设置:

CELERY_TIMEZONE='US/Pacific'
TIME_ZONE = 'US/Pacific'
USE_TZ = True

查看了有关 stackoverflow 和 git 的所有可用问题报告和建议,但所有这些都表明我应该已经在 > 3.1.23 中进行了修复

我就是这样解决的

我的系统和后续的 bash 环境正在为时区运行 EST。正如您在上面看到的,django 应用程序运行“美国/太平洋”(PST)。这是 3 小时的差异,即 10800 秒。

通过将 bash 时区也设置为 PST,以匹配 django 应用程序,漂移错误消失了:

export TZ="US/Pacific"

【讨论】:

    【解决方案2】:

    只要您使用 CELERY_ENABLE_UTC,具有相同的 utcoffset() 不是必需的。

    你在打issue #1112吗?您可能需要更新到 Celery 3.1。

    【讨论】:

      猜你喜欢
      • 2014-09-05
      • 2019-10-18
      • 2020-03-28
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 2017-05-11
      • 1970-01-01
      相关资源
      最近更新 更多