在Zapier支持的触发器中进行轮询吗?

问题描述 投票:0回答:2

我正在编写一个zapier触发器,我需要启动我们的文件下载api,后者又提供了一个url来轮询,一旦我获得文件就绪状态,我就可以构建一个文件下载URL。是否可以在触发器中包含轮询代码? zapier支持的文件是否有任何大小限制?有了我的下载网址,可以直接使用这段代码吗?

return _.map(records, function(record) {
  // if you just do url, we'll include any standard authentication headers
  record.file = z.dehydrateFile('//mysite.com/mypath/download' + record.id);
  return record;
});
zapier
2个回答
0
投票

大卫来自Zapier平台团队。

您可以在触发器中基本上执行任何操作,但需要记住以下几项重要事项:

  • 目标是获取大量物品,全部归还,zapier zapier决定哪些是新的
  • 你的触发器总共有30秒,所以如果你要查看大量的结果,你就会超时
  • 有一个非常重要的line in the docs

注意:如果您通过短暂的URL发送文件,则应该只在水合方法中使用z.stashFile()或者使用钩子触发器执行。否则,在轮询调用中存储数十个文件可能非常昂贵

这里最糟糕的情况是每次我们轮询(每5-15分钟发生一次),你等待每个结果的文件并每次都存储它(不知道用户是否需要它)。

您应该按照文档中的示例进行操作,在Zapier轮询期间,您将使轮询操作脱水。当我们确定一个项目是新的时,我们将进行该轮询,在文件准备好后将其存档,并将其适当地发送给用户。


0
投票

通常应避免轮询,因为它会导致性能问题。如果可以,您可能希望在后台函数(请参阅serverless函数)或后台代码中编写轮询代码。它为你做了繁重的工作。创建一个Zapier Webhook。从后台代码/函数中,对POST执行文件/数据的HTTP Webhook(就像创建/更新新项目一样)。这种结构/架构使您的触发器。使用上面的用例,您只需将下载URL发送到Webhook即可。之后,您可以添加zap来使用此触发器并使用传入的数据并发送到action。这使它更加清洁和高效。

参考:Webhooks

© www.soinside.com 2019 - 2024. All rights reserved.