小编Kac*_*per的帖子

在 Heroku 中使用 Selenium 以及 Python、FastAPI 和 Celery 时,错误 R14(超出内存配额)导致 TimeoutException

我构建了一个抓取器,可以从页面收集数据,对其进行格式化并将其添加到数据库中。然后,它使用抓取的数据来构建模型,但抓取的一个值除外。一切都包含在 Celery 中,以便任务在后台运行。

@router.post("/run/{id}")
async def create(id: str):
    wallet_reputation.delay(id)

    return {"Status": "Task successfully add to execute"}
Run Code Online (Sandbox Code Playgroud)

上面的端点工作正常,一切正常。在上述端点中添加的 ID 值是唯一的,大约有 100 个这样的值。为了自动为每个 ID 构建模型,我创建了这样一个端点来不时调用它(抓取数据更改,因此我需要更新我的模型)。

@router.post("/run")
async def create_all():
    for address in all_addresses_generator():
        wallet_reputation.delay(address)

    return {"Status": "Tasks successfully add to execute"}
Run Code Online (Sandbox Code Playgroud)

我收到该错误

2022-03-26T15:25:52.051854+00:00 heroku[worker.1]: Process running mem=543M(104.1%)
2022-03-26T15:25:52.073256+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2022-03-26T15:26:02.875701+00:00 app[worker.1]: [2022-03-26 15:26:02,871: ERROR/ForkPoolWorker-8] Task walletReputation[2cca3c3e-8c58-4983-bbae-e55e52f33c1a] raised unexpected: TimeoutException('', None, ['#0 0x556bcd4bc7d3 <unknown>', '#1 0x556bcd218688 <unknown>', '#2 0x556bcd24ec21 <unknown>', '#3 0x556bcd24ede1 <unknown>', '#4 0x556bcd281d74 <unknown>', '#5 0x556bcd26c6dd …
Run Code Online (Sandbox Code Playgroud)

python selenium heroku out-of-memory celery

3
推荐指数
1
解决办法
4210
查看次数

标签 统计

celery ×1

heroku ×1

out-of-memory ×1

python ×1

selenium ×1