gpt4 book ai didi

python - django + apscheduler - 如何配置 APScheduler 以使用 settings.py 中的 django db 连接数据?

转载 作者:行者123 更新时间:2023-11-29 10:27:55 25 4
gpt4 key购买 nike

我有一个正在运行的 Django 项目及其数据库和模型表。现在,我想使用 Django 数据库连接集成 APScheduler 并将 APScheduler 作业保存在与其他表相同的数据库中。

我已阅读 User Guide其中给出了将数据库连接字符串硬编码为代码的示例:

from pytz import utc

from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.mongodb import MongoDBJobStore
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor


jobstores = {
'mongo': MongoDBJobStore(),
'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite')
}
executors = {
'default': ThreadPoolExecutor(20),
'processpool': ProcessPoolExecutor(5)
}
job_defaults = {
'coalesce': False,
'max_instances': 3
}
scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors, job_defaults=job_defaults, timezone=utc)

但是配置数据我已经在 Django 设置文件中了。

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'xxxxx',
'USER': "manager",
'PASSWORD': "xxxxxxxx",
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
'PORT': '3306',
}
}

我可以只使用 Django 连接吗?我不想将这些数据写入另一个属性文件来维护两个文件。

我问这个基本上是因为我不想对凭据进行硬编码。

编辑:

我意识到我可以使用类似的东西:

'url':          'mysql+mysqldb://' +  settings.DATABASES['default']['USER'] + ':' + 
settings.DATABASES['default']['PASSWORD'] + '@' +
settings.DATABASES['default']['HOST'] + '/' +
settings.DATABASES['default']['NAME']

现在,如果我的密码已加密,APScheduler 会识别它吗?

最佳答案

您可能已经解决了这个问题,但是有一个名为“django_apscheduler”的第三方帮助程序用于将 APScheduler 与 Django 集成,如 docs 中所述。 .

它可以使用 PIP 从 PyPi 安装,您可以找到 docs on GitHub ,尽管它们有点模糊。

关于python - django + apscheduler - 如何配置 APScheduler 以使用 settings.py 中的 django db 连接数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47939606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com