celery定时任务启动报错

启动celery时, 发现报错: KeyError: 'scheduler' KeyError: 'entries'

[2020-12-15 14:53:11,669: ERROR/Beat] Process Beat
Traceback (most recent call last):
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/kombu/utils/objects.py", line 42, in __get__
    return obj.__dict__[self.__name__]
KeyError: 'scheduler'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/shelve.py", line 111, in __getitem__
    value = self.cache[key]
KeyError: 'entries'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/billiard/process.py", line 327, in _bootstrap
    self.run()
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/celery/beat.py", line 707, in run
    self.service.start(embedded_process=True)
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/celery/beat.py", line 622, in start
    humanize_seconds(self.scheduler.max_interval))
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/kombu/utils/objects.py", line 44, in __get__
    value = obj.__dict__[self.__name__] = self.__get(obj)
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/celery/beat.py", line 666, in scheduler
    return self.get_scheduler()
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/celery/beat.py", line 661, in get_scheduler
    lazy=lazy,
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/celery/beat.py", line 501, in __init__
    Scheduler.__init__(self, *args, **kwargs)
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/celery/beat.py", line 257, in __init__
    self.setup_schedule()
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/celery/beat.py", line 529, in setup_schedule
    self._create_schedule()
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/site-packages/celery/beat.py", line 558, in _create_schedule
    self._store[str('entries')]
  File "/home/clear/anaconda3/envs/faissEnv/lib/python3.6/shelve.py", line 114, in __getitem__
    value = Unpickler(f).load()
EOFError: Ran out of input

解决办法:

把celery启动目录中之前启动时自动生成的定时文件删除

celerybeat-schedule.bak
celerybeat-schedule.dat
celerybeat-schedule.dir

posted @ 2021-04-17 09:25  Alex-GCX  阅读(806)  评论(2编辑  收藏  举报