Asana API 是否发送了太多事件?

is Asana API sending too many events?

我正在开发一个使用体式的新应用 API,

在项目上创建 webhook 后,即使是最简单的任务,我也会收到太多事件

让我们看一个例子: 我有一个项目,有一个 webhook 接收发生在它上面的所有更新。

我在这个项目上创建了一个新任务,我收到了 11 个事件,不是一个,也不是两个。

{
    "events": [
        {
            "resource": 208671118519207,
            "user": 50164104471653,
            "type": "task",
            "action": "changed",
            "created_at": "2016-11-08T07:32:15.327Z",
            "parent": null
        },
        {
            "resource": 208671118519207,
            "user": 50164104471653,
            "type": "task",
            "action": "changed",
            "created_at": "2016-11-08T07:32:15.547Z",
            "parent": null
        },
        {
            "resource": 208671118519207,
            "user": 50164104471653,
            "type": "task",
            "action": "changed",
            "created_at": "2016-11-08T07:32:19.814Z",
            "parent": null
        },
        {
            "resource": 208671118519207,
            "user": 50164104471653,
            "type": "task",
            "action": "changed",
            "created_at": "2016-11-08T07:32:19.928Z",
            "parent": null
        },
        {
            "resource": 208671118519207,
            "user": 50164104471653,
            "type": "task",
            "action": "changed",
            "created_at": "2016-11-08T07:32:20.080Z",
            "parent": null
        },
        {
            "resource": 208671118519207,
            "user": 50164104471653,
            "type": "task",
            "action": "changed",
            "created_at": "2016-11-08T07:32:20.178Z",
            "parent": null
        },
        {
            "resource": 208671118519208,
            "user": 50164104471653,
            "type": "story",
            "action": "removed",
            "created_at": "2016-11-08T07:32:15.153Z",
            "parent": 208671118519207
        },
        {
            "resource": 208720288746880,
            "user": 50164104471653,
            "type": "story",
            "action": "added",
            "created_at": "2016-11-08T07:32:15.332Z",
            "parent": 208671118519207
        }
    ]
}

过了一会儿,我收到了这个:

{
    "events": [
        {
            "resource": 116224991348154,
            "user": 50164104471653,
            "type": "project",
            "action": "changed",
            "created_at": "2016-11-08T07:32:20.556Z",
            "parent": null
        },
        {
            "resource": 208671118519211,
            "user": 50164104471653,
            "type": "task",
            "action": "added",
            "created_at": "2016-11-08T07:32:20.520Z",
            "parent": 116224991348154
        },
        {
            "resource": 208671118519212,
            "user": 50164104471653,
            "type": "story",
            "action": "added",
            "created_at": "2016-11-08T07:32:20.550Z",
            "parent": 208671118519211
        }
    ]
}

我明白事件冒泡和任务中的事件也会触发父项目中的事件,我也明白每个事件也会产生一个“故事”事件,但我不明白的是为什么我们有太多“任务改变”事件?

这是错误还是功能?还是我做错了?

如果我只想为每个任务更改获取一个事件,我应该怎么做?

另一个问题。有时我会收到没有任何用户 ID 的任务事件,例如:

{
    "events": [
        {
            "resource": 207890837706528,
            "user": null,
            "type": "task",
            "action": "changed",
            "created_at": "2016-11-08T07:16:19.270Z",
            "parent": null
        }
    ]
}

没有用户 ID 的事件是什么意思?

谢谢

这里是 Asana 开发者。你是对的,我们发送了太多的事件 - 我们在那里有点过分热心。其中一些是由于您已经认识到的因素 - 事件冒泡,添加到任务中的故事等。但是,我不希望看到那么多 "task-changed" 事件......你是在创建它吗UI?如果您输入 name/notes 它肯定会发送事件,不是针对每次击键,而是每隔几秒发送一次?我们还没有找到我们满意的合并更改事件的解决方案,因为 Asana 应用程序是反应式的 - 它会在您键入时不断发送更新,并且每个更新都显示为 "edit" 事件。

至于没有用户的事件,当系统发生某些事情时会发生这种情况 - 例如,如果任务因自动重复而重复。

我们目前没有对此进行更改的计划 - 从长远来看,我们可能会添加新类型的事件。现在,它基本上只是每次模型以任何方式发生变化时的消防水管,加上 add/remove 个事件。