小编ish*_*ht3的帖子

在 Docker 上运行时,气流给出日志文件不存在错误

调度程序和网络服务器正在不同的容器上运行,当我运行 DAG 并检查网络服务器上的日志时,它向我显示了这个特定错误。

*** Log file does not exist: /usr/local/airflow/logs/indexing/index_articles/2019-12-31T00:00:00+00:00/1.log
*** Fetching from: http://465e0f4a4332:8793/log/indexing/index_articles/2019-12-31T00:00:00+00:00/1.log
*** Failed to fetch log file from worker. HTTPConnectionPool(host='465e0f4a4332', port=8793): Max retries exceeded with url: /log/indexing/index_articles/2019-12-31T00:00:00+00:00/1.log (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0a143700d0>: Failed to establish a new connection: [Errno 111] Connection refused'))
Run Code Online (Sandbox Code Playgroud)

我设置了另一个类似问题中提到的气流变量,我在 cfg 文件上更改的唯一变量是这些。

AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@postgres:5432/airflow
AIRFLOW__CORE__LOAD_EXAMPLES=False
AIRFLOW__CORE__BASE_URL = http://{hostname}:8080
Run Code Online (Sandbox Code Playgroud)

我手动检查并正确生成了日志文件,我假设唯一的问题是无法通过网络服务器容器公开访问 url。我不确定我在哪里搞砸了,我正在本地运行和测试它。

python airflow airflow-scheduler

9
推荐指数
2
解决办法
4946
查看次数

Python Click:错误:调用 --help 标志时缺少参数

这是我的代码:

@click.group()
@click.pass_context
@click.argument('CHALLENGE', type=int)
def challenge(ctx, challenge):
    ctx.obj = Challenge(challenge=challenge)

@click.group(invoke_without_command=True, cls=PhaseGroup)
@click.pass_obj
@click.argument('PHASE', type=int)
def phase(ctx, phase):
    # Something

challenge.add_command(phase)
Run Code Online (Sandbox Code Playgroud)

这些命令一起工作应该是这样的。

cli challenge 1 phase 1
Run Code Online (Sandbox Code Playgroud)

通过正确执行,它可以按预期工作。

但是当我使用 --help 或在阶段上定义任何其他标志时,它会抛出

cli challenge 1 phase 1 --help

It throws Error: Missing argument "PHASE".
Run Code Online (Sandbox Code Playgroud)

我搜索了 SOF,发现python click app 失败,并显示“缺少参数”,但无法找到问题这是一个有同样问题的用户,但我不太明白答案。

我不能将参数设置为可选,因为它是 CLI 工作的关键部分。

python command-line-interface python-click

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