通过Zapier步骤是否可以克服Python/代码中的250项限制?

2024-09-28 20:42:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Zapier step的代码从远程数据库获取记录。这本质上是一个远程选择查询,我解析响应,处理记录,然后将它们很好地打包到输出字典中,这样我的下一个应用程序就可以一次读取一条记录,并从中获取它

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

我发现Zapier只允许输出字典中的250项,这让我大吃一惊。我知道代码步骤的内存限制,但我天真地认为输出大小也会受到内存限制的影响。事实证明这是一个硬限制

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

问题#2:有没有关于如何规避这一限制的建议?我知道Zapier目前不支持zap中的循环,但有什么方法可以“编码”这一点吗

我知道也许连续两天运行相同的zap等可能是一种可能性,但在这种情况下还有一些其他缺点

另外,还有一个关于限制的问题:--10秒256MB的运行内存限制:这是每zap一次,还是每代码步一次?也就是说,如果我把我的zap代码分成两部分,那么每一步我都能得到10秒的时间吗

有什么想法吗


Tags: 内存代码数据库应用程序字典远程尺寸step
2条回答

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.

好问题

will upgrade to a bigger plan give me a larger item size limit?

不可以。免费用户可以返回25个项目,付费用户可以返回250个项目。这不是一个常用的功能,所以它不是一个流行的功能。我不知道为什么会有这样的限制,但这是一个硬限制

the 10sec, 256MB running memory limit: is this per zap, or is this per code step?

这是每个代码步骤。但是,要注意循环逻辑——如果您将两个都返回数组的代码步骤按顺序放在一起,那么将有大量重复。例如,如果代码步骤A和B中的每一个都是按顺序执行的,并返回10个项目,那么代码步骤B将运行10次并返回100个项目(这可能不是您想要的)

您似乎想要触发器的功能(返回一个对象列表,在每个对象上运行剩余的zap),因此我将您的代码设置为触发器!触发器没有项目限制(虽然有前面提到的数据大小限制,但应该可以)

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

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

相关问题 更多 >