繁体   English   中英

Playwright 和 PM2 问题 - 在创建 PlaywrightContextManager 时挂起

[英]Playwright and PM2 Issue - hang while creating PlaywrightContextManager

我想和剧作家一起写 scrapy 蜘蛛。 我使用模块scrapy-playwright

我成功地编写了一个蜘蛛,如果手动运行它可以正常工作( scrapy crawl my_spider )。 但是当我尝试通过 PM2 启动蜘蛛进程时,它只是挂起并且无法正常工作。

问题不在我的代码中,也不在我如何进行 PM2 配置。 因为没有剧作家蜘蛛成功运行。

问题出在剧作家的逻辑上。

我发现进程挂起的一行代码: https://github.com/microsoft/playwright-python/blob/main/playwright/async_api/_context_manager.py#L40

在那之后,我尝试用剧作家的同步 api 编写自己的蜘蛛。 这个蜘蛛成功地手动启动,但在 PM2 中它也冻结了。

同步编剧挂在这一行: https://github.com/microsoft/playwright-python/blob/main/playwright/sync_api/_context_manager.py#L88

我不明白为什么会这样以及如何解决这个问题。 我的剧作家蜘蛛成功地手动启动,但在 PM2 中它们冻结了。

你能帮我解决这个问题吗?

我有一个类似的问题:我让 Apache Airflow Celery 的工人运行 PM2,每小时运行一个编剧任务。 工作挂了。

我怀疑这是 Byobu 和 PM2 散落的环境变量。 对我有用的是将 Python 脚本包装在 bash 脚本中并清理环境变量,如下所示:

#!/bin/bash
[ "$HOME" != "" ] && exec -c $0
# Your python script should come below:
/home/ubuntu/usr/venv-3.10-airflow/bin/airflow celery worker

第一行清除环境变量(如使用命令或 bash 脚本清理环境中所建议的那样? )。 现在您可以使用pm2 start命令运行此脚本。 截至目前,我的工人已经正常运行了大约 24 小时。 我希望这对你也有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM