Mongoengine Connection Failure

58 Views Asked by At

I am trying to run celery beat for my project, but it's giving me the following error.

The celery worker is running fine.

I am using Python 3.9

Using MongoDB: 6.0.11

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

installed packages with its versions:

Package Version

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

amqp 2.6.1

asgiref 3.7.2

async-timeout 4.0.3

billiard 3.6.4.0

boto3 1.28.65

botocore 1.31.65

Bottleneck 1.3.5

celery 4.4.7

celerybeat-mongo 0.2.0

certifi 2023.7.22

cffi 1.16.0

chardet 5.2.0

charset-normalizer 3.3.0

click 8.1.7

click-didyoumean 0.3.0

click-plugins 1.1.1

click-repl 0.3.0

cmdstanpy 1.2.0

colorama 0.4.6

convertdate 2.4.0

coreapi 2.3.3

coreschema 0.0.4

cryptography 41.0.4

cycler 0.12.1

Cython 3.0.4

Django 4.2.6

django-encrypted-model-fields 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

fernet 1.0.1

gevent 23.9.1

greenlet 3.0.0

holidays 0.35

idna 3.4

imgkit 1.2.3

importlib-resources 6.1.0

itypes 1.2.0

Jinja2 3.1.2

jmespath 1.0.1

kiwisolver 1.4.4

kombu 4.6.11

LunarCalendar 0.0.9

MarkupSafe 2.1.3

matplotlib 3.4.3

mkl-service 2.4.0

mongoengine 0.20.0

numexpr 2.8.4

numpy 1.22.4

openapi-codec 1.3.2

packaging 23.2

pandas 1.5.3

Pillow 9.4.0

pip 23.3

plotly 5.17.0

prompt-toolkit 3.0.39

prophet 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

requests 2.31.0

s3transfer 0.7.0

scipy 1.11.3

setuptools 68.0.0

simplejson 3.19.2

six 1.16.0

sqlparse 0.4.4

stanio 0.3.0

tenacity 8.2.3

tornado 6.2

tqdm 4.66.1

typing_extensions 4.8.0

tzdata 2023.3

uritemplate 4.1.1

urllib3 2.0.7

vine 1.3.0

wcwidth 0.2.8

wheel 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

I tried to add the following line in the code where I am connecting mongoengine

disconnect()

but it did not work.

now I am expecting that celery beat should run.

1

There are 1 best solutions below

0
Chrish Mortain On

Try with below code

import mongoengine

mongoengine.disconnect(alias='default')


mongoengine.connect('your-db-name', alias='default')