小编mad*_*ad_的帖子

如何在unittest中测试气流dag?

我试图在测试环境中测试一个具有多个任务的dag.我能够测试与dag相关的单个任务,但我想在第一个任务的dag和kick中创建几个任务.为了测试我正在使用的dag中的一个任务

task1.run()

哪个正在执行.但是,当我在dag下游一个接一个地完成许多任务时,同样不起作用.

from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta


default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2015, 6, 1),
'email': ['airflow@example.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
# 'queue': 'bash_queue',
# 'pool': 'backfill',
# 'priority_weight': 10,
# 'end_date': datetime(2016, 1, 1),
}

dag = DAG('tutorial', default_args=default_args)

# t1, t2 and t3 are examples of tasks created by instantiating operators
t1 = BashOperator(
task_id='print_date',
bash_command='date',
dag=dag)

t2 = BashOperator(
task_id='sleep',
bash_command='sleep …
Run Code Online (Sandbox Code Playgroud)

python unit-testing pytest airflow

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

如果删除了子项,则删除父项

如果子表中的关联行已被删除,我想删除父行。

class Child(Base):
    __tablename__ = "children"

    id = Column(Integer, primary_key=True)
    parent_id = Column(Integer, ForeignKey("parents.id", ondelete='CASCADE'))

class Parent(Base):
    __tablename__ = "parents"
    id = Column(Integer, primary_key=True)
    child = relationship(Child, backref="parent", passive_deletes=True)
Run Code Online (Sandbox Code Playgroud)

如果我移除孩子

child_obj = session.query(Child).first()
session.delete(child_obj)
session.commit()
Run Code Online (Sandbox Code Playgroud)

它确实删除了子对象,但父对象保持原样。我也想使用级联删除父级。

python sqlalchemy one-to-many cascading-deletes

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

如何查找Airflow中失败的上游任务数量?

我很难弄清楚如何找到在同一天(同一执行日)运行两次的同一个 dag 运行的失败任务。

考虑一个例子,当 dagdag_id=1在第一次运行时失败(由于任何原因,可能是连接超时)并且任务失败。当我们尝试查询时,TaskInstance 表将包含失败任务的条目。伟大的!!

但是,如果我重新运行相同的 dag(注意 dag_id 仍然是 1),那么在最后一个任务中(它的规则是,ALL_DONE无论上游任务是失败还是成功,它都会被执行)我想计算当前 dag_run 中失败的任务数,忽略之前的 dag_runs。我遇到了 dag_run id,如果我们可以将它与 TaskInstance 关联起来,它可能会很有用,但我不能。任何建议/帮助表示赞赏。

airflow

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

在cookie中保存会话ID是什么概念?

我正在为一家企业开发一个安全的网站。我希望它完全免受所有已知漏洞的影响。我遇到了创建安全 cookie 并启用 HTTPOnly 的问题,但在那个例子中,他们使用 cookie 值作为会话 ID。我不明白。用这种方式会不会有威胁?

java cookies web-applications session-cookies

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

基于索引的Python列表中的优雅切片

我想知道基于索引切片 python 列表的有效且优雅的方法是什么。为了提供一个最小的例子:

temp = ['a','b','c','d']

index_needed=[0,2]
Run Code Online (Sandbox Code Playgroud)

如何在没有循环的情况下对列表进行切片?

预期产出

output_list =['a','c']
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,会有办法,但还没有找到。有什么建议么?

python arrays numpy list python-2.7

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

DAG导入的区别有两种?

我正在努力创造动态的dag,但似乎在一分钟失败.我遇到了两个不同的DAG对象:

airflow

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