Mongoengine 连接失败

问题描述 投票:0回答:1

我正在尝试为我的项目运行 celerybeat,但它给了我以下错误。

芹菜工人运行良好。

我正在使用Python 3.9

使用 MongoDB:6.0.11

    raise ConnectionFailure(err_msg)
mongoengine.connection.ConnectionFailure: A different connection with alias `default` was already registered. Use disconnect() first

已安装的软件包及其版本:

套装版

--------------------------------- ------------------------

amqp 2.6.1

asgiref 3.7.2

异步超时 4.0.3

台球3.6.4.0

boto3 1.28.65

botocore 1.31.65

瓶颈1.3.5

芹菜4.4.7

celerybeat-mongo 0.2.0

证书2023.7.22

cffi 1.16.0

夏代5.2.0

字符集标准化器3.3.0

点击8.1.7

单击-didyoumean 0.3.0

点击插件1.1.1

点击-repl 0.3.0

cmdstanpy 1.2.0

色彩0.4.6

转换日期2.4.0

coreapi 2.3.3

核心架构0.0.4

密码学41.0.4

循环器0.12.1

Cython 3.0.4

Django 4.2.6

django 加密模型字段 0.6.5

django-rest-framework-mongoengine 3.4.1

django-rest-swagger 2.2.0

djangorestframework 3.14.0

dnspython 2.4.2

docutils 0.20.1

ephem 4.1.2

费奈特1.0.1

事件23.9.1

格林莱特3.0.0

节假日0.35

idna 3.4

imgkit 1.2.3

导入lib资源6.1.0

类型 1.2.0

Jinja2 3.1.2

jmespath 1.0.1

kiwisolver 1.4.4

海带 4.6.11

农历0.0.9

标记安全2.1.3

matplotlib 3.4.3

mkl-服务2.4.0

mongoengine 0.20.0

numexpr 2.8.4

numpy 1.22.4

openapi-编解码器1.3.2

包装23.2

熊猫1.5.3

枕头9.4.0

23.3 点

绘图5.17.0

提示工具包3.0.39

先知1.1.4

pyaes 1.6.1

pycparser 2.21

PyMeeus 0.5.12

pymongo 3.13.0

pyparsing 3.1.1

pystan 2.19.1.1

python-dateutil 2.8.2

pytz 2023.3.post1

redis 5.0.1

请求2.31.0

s3传输0.7.0

scipy 1.11.3

安装工具68.0.0

simplejson 3.19.2

六 1.16.0

sqlparse 0.4.4

斯坦尼奥0.3.0

坚韧8.2.3

龙卷风6.2

tqdm 4.66.1

打字扩展4.8.0

tzdata 2023.3

uri模板4.1.1

urllib3 2.0.7

藤1.3.0

宽度0.2.8

轮0.41.2

XlsxWriter 3.1.8

zipp 3.17.0

zope.event 5.0

zope.interface 6.1

Traceback (most recent call last):
  File "C:\anaconda\envs\condaenv_python3.10\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\anaconda\envs\condaenv_python3.10\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\anaconda\envs\condaenv_python3.10\Scripts\celery.exe\__main__.py", line 7, in <module>
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\__main__.py", line 16, in main
    _main()
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\bin\celery.py", line 322, in main
    cmd.execute_from_commandline(argv)
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\bin\celery.py", line 499, in execute_from_commandline
    super(CeleryCommand, self).execute_from_commandline(argv)))
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\bin\base.py", line 305, in execute_from_commandline
    return self.handle_argv(self.prog_name, argv[1:])
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\bin\celery.py", line 491, in handle_argv
    return self.execute(command, argv)
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\bin\celery.py", line 415, in execute
    return cls(
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\bin\base.py", line 308, in run_from_argv
    return self.handle_argv(prog_name,
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\bin\base.py", line 393, in handle_argv
    return self(*args, **options)
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\bin\base.py", line 253, in __call__
    ret = self.run(*args, **kwargs)
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\bin\beat.py", line 109, in run
    return beat().run()
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\apps\beat.py", line 81, in run
    self.start_scheduler()
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\apps\beat.py", line 100, in start_scheduler
    print(self.banner(service))
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\apps\beat.py", line 122, in banner
    c.reset(self.startup_info(service))),
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\apps\beat.py", line 132, in startup_info
    scheduler = service.get_scheduler(lazy=True)
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celery\beat.py", line 657, in get_scheduler
    return symbol_by_name(self.scheduler_cls, aliases=aliases)(
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\celerybeatmongo\schedulers.py", line 127, in __init__
    self._mongo = mongoengine.connect(db, host=host, alias=alias)
  File "C:\anaconda\envs\condaenv_python3.10\lib\site-packages\mongoengine\connection.py", line 401, in connect
    raise ConnectionFailure(err_msg)
mongoengine.connection.ConnectionFailure: A different connection with alias `default` was already registered. Use disconnect() first

我尝试在连接 mongoengine 的代码中添加以下行

断开连接()

但是没有成功。

现在我期待芹菜节拍应该运行。

python mongodb celery mongoengine celerybeat
1个回答
0
投票

尝试使用以下代码

import mongoengine

mongoengine.disconnect(alias='default')


mongoengine.connect('your-db-name', alias='default')
© www.soinside.com 2019 - 2024. All rights reserved.