我遇到了一个奇怪的问题。我的一些(5%)celery任务被默默地丢弃了。
通过查看celery日志,我发现在某些情况下,相同的任务ID会为不同的任务生成。自然地,任何新任务都会覆盖具有相同任务ID的现有任务;如果旧任务未被执行,则会静默地丢弃旧任务。
在1.5个小时内,相同的UUID被生成了3次。我进行了一些随机抽样,并发现在同一台机器上,在短时间内(1-2小时内)出现这种情况。服务器每天生成约100万个UUID。与具有38位数字的可能UUID数量相比,这是一个带有7位数字的微小数字。
我在Linux VM上运行Python 3.6和Celery 4.4.2。
Celery使用Python的
更新:
VM是运行Ubuntu 18 LTS的Google Cloud Plaftform计算实例。
通过查看celery日志,我发现在某些情况下,相同的任务ID会为不同的任务生成。自然地,任何新任务都会覆盖具有相同任务ID的现有任务;如果旧任务未被执行,则会静默地丢弃旧任务。
在1.5个小时内,相同的UUID被生成了3次。我进行了一些随机抽样,并发现在同一台机器上,在短时间内(1-2小时内)出现这种情况。服务器每天生成约100万个UUID。与具有38位数字的可能UUID数量相比,这是一个带有7位数字的微小数字。
我在Linux VM上运行Python 3.6和Celery 4.4.2。
Celery使用Python的
uuid.uuid4
:参考文献
我不确定该怎么继续下去。是否存在Python版本(或Linux内核)的错误、配置问题或硬件/VM错误?所有这些方案似乎都非常不可能。更新:
VM是运行Ubuntu 18 LTS的Google Cloud Plaftform计算实例。
uuid4
只是调用os.urandom
来作为其字节的来源,所以我猜这可能是与随机性相关的平台特定问题? - bnaeckeracks_late=True
? - DejanLekic