0

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.

0

2 Answers 2

0

Try with below code

import mongoengine

mongoengine.disconnect(alias='default')


mongoengine.connect('your-db-name', alias='default')
Sign up to request clarification or add additional context in comments.

Comments

0

You can set the setting for CELERY_MONGODB_SCHEDULER_CONNECTION_ALIAS to something other than default. and it will work just fine.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.