[英]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.