小编OCD*_*Dev的帖子

气流传感器中的“重新安排”模式如何工作?

我有一个 Airflow Http 传感器,它调用 REST 端点并检查 API 返回的 JSON 结构中的特定值

sensor = HttpSensor(
    soft_fail=True,
    task_id='http_sensor_check',
    http_conn_id='http_default',
    endpoint='http://localhost:8082/api/v1/resources/games/all',
    request_params={},
    response_check=lambda response: True if check_api_response(response) is True else False,
    mode='reschedule',
    dag=dag)
Run Code Online (Sandbox Code Playgroud)

如果response_check为假,则DAG将处于“up_for_reschedule”状态。问题是,DAG 永远保持这种状态,并且从未重新安排。

我的问题是:

  • “up_for_reschedule”是什么意思?DAG 何时重新安排?
  • 假设我的 DAG 计划每 5 分钟运行一次,但由于传感器的原因,“up_for_reschedule”DAG 实例与新运行重叠,我是否会同时运行 2 个 DAGS?

先感谢您。

airflow airflow-scheduler

10
推荐指数
1
解决办法
2万
查看次数

同步获取 Firebase 用户令牌

我正在尝试获取 Firebase 令牌来验证我对 Rest API 的调用。我可以使用以下代码异步生成令牌。

    FirebaseUser mUser = App.getFirebaseAuth().getCurrentUser();
    if (mUser!=null) {
        mUser.getIdToken(false)
                .addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
                    public void onComplete(@NonNull Task<GetTokenResult> task) {
                        if (task.isSuccessful()) {
                            ID_TOKEN = task.getResult().getToken();
                        } else {
                            Log.e(App.TAG, "Firebase Token task ended with error.");
                        }
                    }
                });
    } else {
        Log.i(App.TAG,"User is null, no Firebase Token available");
    }
Run Code Online (Sandbox Code Playgroud)

ID_TOKEN 是保存结果的静态字符串变量。问题是,我正在构建我的请求并添加身份验证标头。

        headers.put("Authentication",
                "Bearer  + ID_TOKEN);
Run Code Online (Sandbox Code Playgroud)

问题是,由于 Firebase 令牌是异步检索的,有时 ID_TOKEN 变量为空。我尝试使用强制线程等待任务

任务.await(任务)

但是我收到一个异常,说不能在主线程中调用 await。

有没有其他方法可以同步获取令牌,或者让线程等待任务完成?

android firebase firebase-authentication

7
推荐指数
2
解决办法
3257
查看次数

用于 org.json.JSONObject 的 Apache Beam Coder

我正在 Apache Beam 中编写一个数据管道,它从 Pub/Sub 读取数据,将消息反序列化为 JSONObjects 并将它们传递到其他一些管道阶段。问题是,当我尝试提交代码时,出现以下错误:

执行 Java 类时发生异常。无法返回用于转换为 JSON 并混淆 PII 数据/ParMultiDo(JSONifyAndObfuscate).output [PCollection] 的默认编码器。更正以下根本原因之一: [错误] 未手动指定编码器;您可以使用 .setCoder() 来执行此操作。[错误] 从 CoderRegistry 推断编码器失败:无法为 org.json.JSONObject 提供编码器。[错误] 使用注册的 CoderProvider 构建 Coder 失败。[错误] 请参阅抑制的异常以了解详细的失败信息。[错误] 使用生成 PTransform 的默认输出编码器失败:调用了 PTransform.getOutputCoder。

基本上,错误表明 Beam 无法找到 org.json.JSONObject 对象的编码器。我不知道在哪里可以获得这样的编码器或如何构建一个。有任何想法吗?

谢谢!

google-cloud-dataflow apache-beam

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

MongoDB 在 $group $push 中创建数组数组而不是平面数组

我试图在 $unwind 操作后对一组文档进行分组。我的文件是这样的:

{ 
    "_id" : ObjectId("5cdb5b5acadf5100019da2f4"), 
    "allowedLocations" : [
        {
            "type" : "country", 
            "value" : "world", 
            "label" : "World"
        }
    ], 
    "disallowedLocations" : [
        {
            "type" : "country", 
            "value" : "CF", 
            "label" : "Central African Republic"
        }, 
        {
            "type" : "country", 
            "value" : "CN", 
            "label" : "China"
        }
    ], 
}

{ 
    "_id" : ObjectId("5cdb5b5acadf5100019da2f4"), 
    "allowedLocations" : [
        {
            "type" : "country", 
            "value" : "US", 
            "label" : "United States of America"
        }
    ], 
    "disallowedLocations" : [
        {
            "type" : "country", …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

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