是否可以克服Python / Code by Zapier步骤中250个项目的限制?

问题描述

我正在使用Code By Zapier步骤从远程数据库获取记录。从本质上讲,这是一个远程SELECT查询,我解析响应,处理记录,然后将它们很好地打包在OUTPUT字典中,以便我的下一个应用程序一次可以读取一条记录,然后从那里获取

现在,我的查询计划每月运行一次,通过这些查询,我每月可获得275-400条记录,这与我的OUTPUT字典大小有关。

令我惊讶的是,我发现Zapier仅允许OUTPUT词典中的250个项目。我知道代码步骤的内存限制,但是我天真地想象到OUTPUT大小也将受此内存限制的影响。原来这是一个硬性限制。

我的问题#1:升级到更大的计划会给我更大的商品尺寸限制吗?

问题2:是否有任何有关如何规避此限制的建议?我知道Zapier当前不支持zap中的循环,但是有什么方法可以对此进行“编码”吗?

我知道也许可以连续两天运行相同的快速击打,等等,但是在这种情况下还有其他缺点。

另外,还有一个与限制有关的问题:-10秒,256 MB的运行内存限制:是每个zap还是每个代码步?意思是,如果我将zap代码分成两部分,那么任一步骤我将分别获得10秒的时间?

有什么想法吗?

解决方法

好问题!

升级到更大的计划会给我更大的物品尺寸限制吗?

不。免费用户可以退回25件商品,付费用户可以退回250件商品。这不是常用功能,因此Zapier的价格也不高。我不确定为什么存在该限制,但这是一个硬限制。

10sec,256MB的运行内存限制:是每个zap,还是每个代码步?

这是每个代码步骤。但是,请谨慎使用循环逻辑-如果放置两个均按顺序返回数组的代码步骤,则将有很多重复。例如,如果每个代码步骤A和B依次执行并返回10个项目,则代码步骤b将运行10次并返回100个项目(这可能不是您想要的)。

您似乎想要触发器的功能(返回对象列表,对每个对象运行其余的zap),所以我将您的代码设置为触发器!触发器没有项目限制(尽管有上述数据大小限制,但是应该没问题)。

唯一棘手的部分是让您的Zap在需要时运行。代码触发器在轮询窗口中运行(免费用户15分钟,付费用户更快)。因此,除非指定的运行日期/时间,否则您需要在代码顶部使用if语句来返回[]。没有时间表触发程序那么优雅,但是

要注意的最后一件事-由于您的代码现在已成为触发器的一部分,因此返回的数据将受deduplication的约束,而以前则不受此约束。确保返回的项目具有唯一的ID(如果您希望每个项目每次都触发)或重复ID(如果您仅对从未见过的项目感兴趣)。可以通过将实际ID与运行日期相结合来合成唯一ID。

,

Zapier代码步骤基于无服务器架构,并具有执行时间和内存的上限。它不应该运行长时间的集成或移动大数据。

I also hit same limitations for my usecase and started a side project to solve these problems. Hit me up on the:  getstartx.tech [AT] gmail.com if you wish to discuss more.