【问题标题】:How to fetch Asana task created by users by API?如何通过 API 获取用户创建的 Asana 任务?
【发布时间】:2015-09-29 10:44:14
【问题描述】:

我正在使用 PHP 类 (https://github.com/ajimix/asana-api-php-class) 通过其 API 获取 asana 任务。

我想获取特定用户创建的任务(这里不是在谈论受让人,因为我的受让人有变化)。

目前,我的方法是:获取所有任务,通过循环获取每个任务的详细信息并获取其创建者名称,然后通过代码过滤,但这需要大量时间才能完成,因为我有数千个任务。

你能推荐一个简单的方法吗?

【问题讨论】:

  • 添加您的代码和基准测试(“大量时间”含糊不清)。此外,在表上添加相关的数据库查询和信息(尤其是表上的索引)。最好的办法是自己添加查询所花费的时间。
  • 这是直接的 PHP 代码,没有使用数据库。我在 asana 上创建了一个项目,从中获取所有任务并遍历每个任务的详细信息,过滤一些标签并检查创建者。在循环中 - 1)获取具有某些任务的任务。 2)检查创建者名称是否与要求的相同。 3)将这些ID存储在一个数组中。对于基准测试:我有 5800 个任务,需要 5h 26m 54s 才能完成上述过程。
  • 抱歉输入错误......在循环中 - 1)获取具有某些标签的任务(不是任务)

标签: php task asana asana-api


【解决方案1】:

你考虑过使用官方asana PHP client吗?

很遗憾,您无法按任务创建者过滤任务查询。

一些提高查询效率的一般建议:

  • 分页 - 通过使用分页,每个请求都会更快返回。
  • 线程 - 使用单独的线程向 Asana API 发出请求并处理返回的数据

我已经注意到对/tasks这个附加查询参数的请求

【讨论】:

  • 感谢安德鲁的评论。我现在正在使用分页。实际上我的目标是让特定用户在特定月份创建的所有任务。所以我只是传递了月份和用户名,这应该让我完成那些任务。目前分页(每页 100 个任务)正在获取任务。假设即将到来的任务列表按创建日期排序。所以我得到 (82, 20, 3, 0, 0 , 0) 特定月份的每页任务。如果零大于两个,我会限制获取查询,假设在指定月份的下一页中没有任务。希望是这样,并且做得对。
  • @Zeeshan 是的,您可以假设当页面包含 0 个条目时,没有更多页面可供阅读。
猜你喜欢
  • 2016-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
相关资源
最近更新 更多