celery 节拍未启动 EOFError ('Ran out of input' )

标签 celery celerybeat kombu

一切正常,直到:

celery beat v3.1.18 (Cipater) is starting.
__    -    ... __   -        _
Configuration ->
    . broker -> amqp://user:**@staging-api.user-app.com:5672//
    . loader -> celery.loaders.app.AppLoader
    . scheduler -> celery.beat.PersistentScheduler
    . db -> /tmp/beat.db
    . logfile -> [stderr]@%INFO
    . maxinterval -> now (0s)
[2015-09-25 17:29:24,453: INFO/MainProcess] beat: Starting...
[2015-09-25 17:29:24,457: CRITICAL/MainProcess] beat raised exception <class 'EOFError'>: EOFError('Ran out of input',)
Traceback (most recent call last):
  File "/home/user/staging/venv/lib/python3.4/site-packages/kombu/utils/__init__.py", line 320, in __get__
    return obj.__dict__[self.__name__]
KeyError: 'scheduler'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.4/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/user/staging/venv/lib/python3.4/site-packages/celery/apps/beat.py", line 112, in start_scheduler
    beat.start()
  File "/home/user/staging/venv/lib/python3.4/site-packages/celery/beat.py", line 454, in start
    humanize_seconds(self.scheduler.max_interval))
  File "/home/user/staging/venv/lib/python3.4/site-packages/kombu/utils/__init__.py", line 322, in __get__
    value = obj.__dict__[self.__name__] = self.__get(obj)
  File "/home/user/staging/venv/lib/python3.4/site-packages/celery/beat.py", line 494, in scheduler
    return self.get_scheduler()
  File "/home/user/staging/venv/lib/python3.4/site-packages/celery/beat.py", line 489, in get_scheduler
    lazy=lazy)
  File "/home/user/staging/venv/lib/python3.4/site-packages/celery/utils/imports.py", line 53, in instantiate
    return symbol_by_name(name)(*args, **kwargs)
  File "/home/user/staging/venv/lib/python3.4/site-packages/celery/beat.py", line 358, in __init__
    Scheduler.__init__(self, *args, **kwargs)
  File "/home/user/staging/venv/lib/python3.4/site-packages/celery/beat.py", line 185, in __init__
    self.setup_schedule()
  File "/home/user/staging/venv/lib/python3.4/site-packages/celery/beat.py", line 377, in setup_schedule
    self._store['entries']
  File "/usr/local/lib/python3.4/shelve.py", line 114, in __getitem__
    value = Unpickler(f).load()
EOFError: Ran out of input

这是什么?

最佳答案

我已经删除了我的 celerybeat-schedule文件,它解决了我的问题。

https://github.com/celery/kombu/issues/516

关于 celery 节拍未启动 EOFError ('Ran out of input' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32785720/

相关文章:

python - 第二次无法执行 celery 节拍

django - celery 任务更新

Django 1.6 + RabbitMQ 3.2.3 + Celery 3.1.9 - 为什么我的 celery 工作人员会死掉并出现 : WorkerLostError: Worker exited prematurely: signal 11 (SIGSEGV)

django - 设置动态调度celerybeat

Django&Celery-路由问题

python-2.7 - 谁能告诉我 python 中 pika 和 kombu 消息传递库之间有什么区别?

python - 如何向 Celery (celerybeat) 动态添加/删除周期性任务

python - 在 django celery 中运行单个任务最多 n 次

python-3.x - celery 是长时间运行任务的好选择吗?