使用 VSCode 调试 Celery

2024-01-09

我在用VSCode https://code.visualstudio.com/用于使用 Django 框架进行 Web 开发。调试 Django 没有任何问题,但是当我尝试使用Celery http://docs.celeryproject.org/en/latest/- 调试器不会在断点处停止。我使用此配置来运行 Celery 和 Celery Beat:

{
    "name": "Beat",
    "type": "python",
    "request": "launch",
    "pythonPath": "/home/MyName/job/MyProject/venv/bin/python",
    "program": "/home/MyName/job/MyProject/venv/bin/celery",
    "console": "integratedTerminal",
    "args": [
        "-A",
        "bgp",
        "beat",
        "-l",
        "info"
    ]
},
{
    "name": "Celery",
    "type": "python",
    "request": "launch",
    "pythonPath": "/home/MyName/job/MyProject/venv/bin/python",
    "program": "/home/MyName/job/MyProject/venv/bin/celery",
    "console": "integratedTerminal",
    "args": [
        "-A",
        "bgp",
        "worker",
        "-l",
        "info",
        "-Q",
        "ssh",
        "--concurrency=1",
    ]
},  

当我运行 Celery - 我得到这个回溯:

[2018-11-29 13:18:34,112: CRITICAL/MainProcess] Unrecoverable error: RuntimeError('already started',)
Traceback (most recent call last):
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/celery/worker/worker.py", line 205, in start
    self.blueprint.start(self)
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/celery/bootsteps.py", line 119, in start
    step.start(parent)
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/celery/bootsteps.py", line 369, in start
    return self.obj.start()
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/celery/concurrency/base.py", line 131, in start
    self.on_start()
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/celery/concurrency/prefork.py", line 112, in on_start
    **self.options)
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/celery/concurrency/asynpool.py", line 432, in __init__
    super(AsynPool, self).__init__(processes, *args, **kwargs)
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/billiard/pool.py", line 1007, in __init__
    self._create_worker_process(i)
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/celery/concurrency/asynpool.py", line 449, in _create_worker_process
    return super(AsynPool, self)._create_worker_process(i)
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/billiard/pool.py", line 1116, in _create_worker_process
    w.start()
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/billiard/process.py", line 124, in start
    self._popen = self._Popen(self)
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/billiard/context.py", line 333, in _Popen
    return Popen(process_obj)
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/billiard/popen_fork.py", line 24, in __init__
    self._launch(process_obj)
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/billiard/popen_fork.py", line 72, in _launch
    self.pid = os.fork()
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/_vendored/pydevd/_pydev_bundle/pydev_monkey.py", line 488, in new_fork
    _on_forked_process()
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/_vendored/pydevd/_pydev_bundle/pydev_monkey.py", line 56, in _on_forked_process
    pydevd.settrace_forked()
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/_vendored/pydevd/pydevd.py", line 1723, in settrace_forked
    patch_multiprocessing=True,
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/_vendored/pydevd/pydevd.py", line 1488, in settrace
    stop_at_frame,
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/_vendored/pydevd/pydevd.py", line 1536, in _locked_settrace
    debugger.connect(host, port)  # Note: connect can raise error.
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/_vendored/pydevd/pydevd.py", line 484, in connect
    s = start_client(host, port)
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/pydevd_hooks.py", line 125, in <lambda>
    _start_client = (lambda h, p: start_client(daemon, h, p))
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/pydevd_hooks.py", line 71, in start_client
    sock, start_session = daemon.start_client((host, port))
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/daemon.py", line 208, in start_client
    with self.started():
  File "/usr/local/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/daemon.py", line 109, in started
    self.start()
  File "/home/MyName/job/MyProject/venv/lib/python2.7/site-packages/ptvsd/daemon.py", line 144, in start
    raise RuntimeError('already started')
RuntimeError: already started
[2018-11-29 13:18:34,158: INFO/MainProcess] Connected to amqp://project:**@127.0.0.1:5672/project
[2018-11-29 13:18:34,210: INFO/MainProcess] mingle: searching for neighbors
[2018-11-29 13:18:35,292: INFO/MainProcess] mingle: all alone
[2018-11-29 13:18:35,353: WARNING/MainProcess] /home/MyName/job/MyProject/venv/lib/python2.7/site-packages/celery/fixups/django.py:200: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments!
  warnings.warn('Using settings.DEBUG leads to a memory leak, never '
[2018-11-29 13:18:35,354: INFO/MainProcess] celery@MyName-vm ready..  

芹菜工作得很好。但是当我在任何任务中放置断点时 - Celery 线程不会停止。我该如何修复它?
我的芹菜版本:芹菜[redis]==4.2.0


您可以尝试将“-P alone”添加到 Celery 配置的参数中。 参考https://github.com/Microsoft/ptvsd/issues/1046 https://github.com/Microsoft/ptvsd/issues/1046

这是我的芹菜配置。它对我来说工作正常。

    {
        "name": "Python: Celery",
        "type": "python",
        "request": "launch",
        "module": "celery",
        "console": "integratedTerminal",
        "args": [
            "-A",
            "tsbc",
            "worker",
            "-l",
            "info",
            "-P",
            "solo",
        ]
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 VSCode 调试 Celery 的相关文章

随机推荐

  • SASS:不是选择器

    我有一个 notSASS mixin 中的 css 选择器 但它不执行任何操作 代码片段 mixin dropdown pos pos right not notip if comp tip true if pos right top dr
  • 多个线程从同一个套接字读取

    我正在开发一个显示来自服务器的数据的应用程序 服务器不是我的 不太稳定 建立太多连接会导致服务器崩溃 我的主要活动中有一个连接到服务器的套接字 但有时我想打开读取数据并显示数据的子活动 我的问题是 我无法使用相同的套接字来实现此目的 并且必
  • PHP gdLib 8 位 PNG 与 alpha

    如何将使用 gd 创建的图像保存为 png 8 它可以很好地保存为具有透明通道的 gif 但我想使用 png 8 此致 啤酒威斯勒 Using imagesavealpha 透明的背景颜色应该可以解决问题 基于 dfilkovi 的代码
  • 完成时的 SwiftUI EditButton 操作

    如何设置当用户点击时要执行的操作EditButton当它显示为 完成 时 甚至可以这样做吗 请注意 这与在用户可能执行的每个单独编辑中执行操作不同 例如onDelete or onMove 当用户完成所有更改并准备好提交它们时 如何设置要执
  • scikit-learn RidgeCV 评分选项不起作用

    我注意到cv values 来自 RidgeCV 的数据始终采用相同的度量 无论scoring选项 这是一个例子 from sklearn linear model import RidgeCV from sklearn datasets
  • Android Studio - GoogleAuthUtil 无法解析

    我正在使用 Android Studio 我需要使用 Google 帐户 但收到错误消息 Cannot resolve symbol GoogleAuthUtil 我已经导入了四个主要的导入内容 import com google andr
  • BackgroundWorker的IsBusy和“IsAlive”一样吗?

    我试图找到一种方法来验证BackgroundWorker线程是否处于活动状态 即仍在运行 该线程本质上是作为一个简单的无限循环实现的 while AllConditionsMet DoSomeMagic Thread Sleep 10000
  • 为什么 .NET 4 中的 BeforeFieldInit 行为发生变化?

    在 C 4 中 没有类型的行为beforefieldinit标志已更改 因此现在可以在首次使用类的任何静态字段之前调用类型初始值设定项 我的问题是为什么 C NET 团队改变了这种行为 主要原因是什么 您能举出任何实际例子来证明这种变化有意
  • 使用尺寸类别以编程方式实现两种不同的布局

    我有一个四个按钮的布局 在肖像中 它们应该一个在另一个之上 在横向中 它们应该分为两列 每列有两个按钮 我在代码中实现了按钮 非常简单的东西 UIButton btn1 UIButton alloc init self view addSu
  • 访问 Google Translate v2 API 时出现错误 403

    我正在尝试从 Android 应用程序中访问 Google 的翻译服务 但是 每次我尝试访问该服务 使用HttpGet请求 我遇到以下错误 error errors domain usageLimits reason accessNotCo
  • 如何在 Ansible 中去掉变量的引号?

    我正在尝试将文件中变量的值获取到 Ansible 变量中 以便我可以使用它 这是我所得到的 name extract Unique Key shell grep UNIQUE KEY config py cut d f 3 register
  • Android 获取所有已安装应用程序的列表

    我使用此代码获得了已安装应用程序的列表 public List
  • Laravel 6 显示 419 |页面已过期[重复]

    这个问题在这里已经有答案了 在本地服务器中 以下 laravel 项目工作正常 但是当项目上传到在线服务器上时 它显示了问题 当尝试登录时 它显示 419 419页面已过期 当我上传到在线服务时 我已经清除了路由 视图 缓存和配置 您的错误
  • 在参数中使用通配符

    在snakemake中使用config yaml文件定义参数时是否可以使用通配符 我使用通用 R 脚本来制作相同的基本热图 但使用不同的输入矩阵 我想使用通配符为 config yaml 文件中的每个热图指定热图的配置 例如 K 均值聚类的
  • 为什么自定义 DialogPreference 不会在 onSharedPreferenceChanged 侦听器上触发?

    我正在尝试在首选项中设置对话框首选项 用户只需单击肯定按钮即可触发某些操作 清除数据库 否 是 public class MyDialogPreference extends DialogPreference public MyDialog
  • 错误 D8016:“/ZI”和“/clr”命令行选项不兼容

    我的程序中出现以下错误 error D8016 ZI and clr command line options are incompatible 当我添加以下几行并在配置 gt 常规中启用公共运行时时会发生这种情况 如果我不启用它 则在使用
  • 错误:用户 ''@'localhost' 的访问被拒绝(使用密码:NO)

    我正在尝试使用 MySQL 和 Knex 进行数据库迁移 当我运行命令时knex migrate latest I get ER ACCESS DENIED ERROR Access denied for user localhost us
  • 使用 Node 提供 Vue 应用程序时,构建会导致空 HTML 页面出现语法错误

    我使用 CLI 创建了一个 VueJs 页面 我想在没有安装 Vue CLI 或 Node 的情况下向其他人展示它 就像您通常在浏览器中打开 html 文件一样 我想在构建后打开 index html 文件 当我打开该文件时 我在控制台中看
  • Postgres 中的 Group by 子句中有多个不需要的记录

    我有两张桌子 我将它们连接在一起 然后运行group by条款 问题是我不断收到不需要的数据 client table name company id created at company table name Query SELECT c
  • 使用 VSCode 调试 Celery

    我在用VSCode https code visualstudio com 用于使用 Django 框架进行 Web 开发 调试 Django 没有任何问题 但是当我尝试使用Celery http docs celeryproject or