【问题标题】:How to connect Celery worker to django test database如何将 Celery worker 连接到 django 测试数据库
【发布时间】:2017-11-26 01:39:42
【问题描述】:

我想让我的 celery 工作进程与 django 测试数据库对话。 它是一个 oracle 数据库,所以我相信数据库/用户已经创建。

我只是想弄清楚要传递 Celery/App 配置以使其与“TEST”数据库对话。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        .............
        'TEST': {
            'USER': WIT_TEST_DB_USER,
            'PASSWORD': WIT_TEST_DB_USER,
        }
    }
}

我看过一篇 stackoverflow 文章,其中谈到将 settings.conf 从父测试 setup() 传递到工作进程。当使用 sqllite 数据库自动生成测试数据库文件时,这可能是必要的。

就我而言,它是一个定义明确的 oracle 测试数据库,我认为它已经是配置/设置文件的一部分。

所以我正在寻找一种独立于测试运行程序/测试用例代码直接启动工作流程的方法。

有人可以建议一种方法吗?

【问题讨论】:

  • 希望对您有所帮助.....docs.celeryproject.org/en/latest/django/…
  • 这让 celery worker 代码与“默认”数据库对话,而不是测试数据库。测试数据库在运行 django 测试运行时由 django testrunner 代码创建/连接,并在测试结束时被销毁。我想在测试运行器中启动工作者,在它们被创建并让它与测试数据库对话之后。我没有看到它与测试数据库对话。

标签: python django oracle celery


【解决方案1】:

您将测试数据库视为普通数据库。所以我认为最好的解决方案是在单独的设置文件中将您的测试数据库定义为DATABASES 设置下的默认数据库。在运行您的工作人员时,您可以像这样将特定的新设置文件传递给您的工作人员:

export DJANGO_SETTINGS_MODULE='[python path to your celery specific settings file]'
# the command to run your celery worker

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-09
    • 2018-10-01
    • 2022-12-16
    • 2013-05-07
    • 2021-06-23
    • 2014-06-19
    • 2011-10-17
    • 2018-06-01
    相关资源
    最近更新 更多