Celerybeat启动时的UnpicklingError

时间:2015-07-17 04:22:42

标签: python django celery supervisord

我一直在使用supervisord为我的django项目运行芹菜一段时间,但突然celerybeat将无法启动。它给出了以下追溯:

Traceback (most recent call last):
  File "[...]celery/apps/beat.py", line 112, in start_scheduler
    beat.start()
  File "[...]celery/beat.py", line 454, in start
    humanize_seconds(self.scheduler.max_interval))
  File "[...]kombu/utils/__init__.py", line 322, in __get__
    value = obj.__dict__[self.__name__] = self.__get(obj)
  File "[...]celery/beat.py", line 494, in scheduler
    return self.get_scheduler()
  File "[...]celery/beat.py", line 489, in get_scheduler
    lazy=lazy)
  File "[...]celery/utils/imports.py", line 53, in instantiate
    return symbol_by_name(name)(*args, **kwargs)
  File "[...]celery/beat.py", line 358, in __init__
    Scheduler.__init__(self, *args, **kwargs)
  File "[...]celery/beat.py", line 185, in __init__
    self.setup_schedule()
  File "[...]celery/beat.py", line 377, in setup_schedule
    self._store['entries']
  File "/usr/local/lib/python2.7/shelve.py", line 122, in __getitem__
    value = Unpickler(f).load()
UnpicklingError: pickle data was truncated

未能找到任何相关信息。

1 个答案:

答案 0 :(得分:0)

我把它拼凑在一起。

问题是由损坏的celerybeat-schedule文件引起的。要找到该文件,请输入:

find ~/ -name celerybeat-schedule -print

然后删除或重命名文件:

mv [filename] [newfilename]

然后重新启动您的流程。