簡體   English   中英

使用 djcelery 計划時芹菜節拍失敗

[英]celery beat fail when using djcelery schedule

我有一點挑戰,想知道是否有人可以提供幫助。 我手動運行 celery 沒有任何問題,但是如果我將 beat 與 djcelery scheduler 一起使用,我會收到一堆數據庫錯誤。

工人:熱關機(MainProcess)

(environment) [root@pse apps]# celery -A services_backend beat -l debug --max-interval=10


celery beat v3.1.26.post2 (Cipater) is starting.


__    -    ... __   -        _


Configuration ->


    . broker -> redis://localhost:6379//


    . loader -> celery.loaders.app.AppLoader


    . scheduler -> djcelery.schedulers.DatabaseScheduler





    . logfile -> [stderr]@%DEBUG
    . maxinterval -> 10.00 seconds (10.0s)
[2020-03-24 01:46:42,962: DEBUG/MainProcess] Setting default socket timeout to 30
[2020-03-24 01:46:42,964: INFO/MainProcess] beat: Starting...
[2020-03-24 01:46:42,964: DEBUG/MainProcess] DatabaseScheduler: intial read
[2020-03-24 01:46:42,964: INFO/MainProcess] Writing entries (0)...
[2020-03-24 01:46:42,964: CRITICAL/MainProcess] beat raised exception <class 'AttributeError'>: AttributeError("'DatabaseFeatures' object has no attribute 'autocommits_when_autocommit_is_off'",)
Traceback (most recent call last):
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/kombu/utils/_init__.py", line 323, in __get_
    return obj.__dict__[self.__name__]
KeyError: 'scheduler'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/celery/apps/beat.py", line 112, in start_scheduler
    beat.start()
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/celery/beat.py", line 470, in start
    humanize_seconds(self.scheduler.max_interval))
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/kombu/utils/_init__.py", line 325, in __get_
    value = obj.__dict__[self.__name__] = self.__get(obj)
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/celery/beat.py", line 512, in scheduler
    return self.get_scheduler()
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/celery/beat.py", line 507, in get_scheduler
    lazy=lazy)
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/celery/utils/imports.py", line 53, in instantiate
    return symbol_by_name(name)(*args, **kwargs)
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/djcelery/schedulers.py", line 161, in _init_
    Scheduler.__init__(self, *args, **kwargs)
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/celery/beat.py", line 185, in _init_
    self.setup_schedule()
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/djcelery/schedulers.py", line 169, in setup_schedule
    self.install_default_entries(self.schedule)
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/djcelery/schedulers.py", line 263, in schedule
    self.sync()
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/djcelery/schedulers.py", line 217, in sync
    with commit_on_success():
  File "/usr/lib64/python3.6/contextlib.py", line 81, in _enter_
    return next(self.gen)
  File "/opt/pse/apps/environment/lib/python3.6/site-packages/djcelery/db.py", line 52, in commit_on_success
    if connection.features.autocommits_when_autocommit_is_off:
AttributeError: 'DatabaseFeatures' object has no attribute 'autocommits_when_autocommit_is_off'

我正在使用以下版本:-

  1. Django - 3.0.3
  2. 芹菜 3.1.26.post2
  3. django 芹菜 3.3.1
  4. Redis 3.4.1

謝謝

我遇到了同樣的錯誤,我通過更改 Django 版本pip install Django==2.1.8解決了它。 順便說一句,python versoin 應該小於 3.7,如果你使用python >= 3.7.x ,它會返回一個語法錯誤(“async”是一個關鍵字)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM