在 NetSuite 中,在给定时刻,只有一个计划脚本实例可以在队列中。这意味着,尝试调度已经在队列中或正在进行中的脚本将导致“INQUEUE”或“INPROGRESS”状态,并且该脚本将被忽略。
有没有轮班的工作?这个问题有什么解决办法吗?
我需要能够多次安排同一个脚本。调度是使用 nlapiScheduleScript 完成的,并在提交后的用户事件中自动触发。
谢谢。
在 NetSuite 中,在给定时刻,只有一个计划脚本实例可以在队列中。这意味着,尝试调度已经在队列中或正在进行中的脚本将导致“INQUEUE”或“INPROGRESS”状态,并且该脚本将被忽略。
有没有轮班的工作?这个问题有什么解决办法吗?
我需要能够多次安排同一个脚本。调度是使用 nlapiScheduleScript 完成的,并在提交后的用户事件中自动触发。
谢谢。
您可以创建同一队列的多个部署以并行运行它们。
NetSuite 确实为客户提供了支付更多预定脚本队列的选项。然后,您只需为每个可用队列创建单独的部署。
如果这不是客户端的选项,您可以构建代表您自己的计划脚本队列的自定义记录。您实际上不只是调用nlapiScheduleScript
,而是创建脚本的自定义记录条目以使用任何脚本参数值进行调度。
同一脚本接收多个执行请求
有时您可能有并发(同时)请求来启动长时间运行的任务。
在这种情况下,您希望能够为每个传入的请求安排下一个可用部署。
例如,如果您认为在峰值负载时您可能会在给定的时间范围内收到五个请求,那么您可能希望至少有那么多脚本部署可用,以确保每个请求都有自己的专用脚本部署。请注意,如果其中一个部署恰好正在进行中或在队列中,则最佳做法是获取您期望在某个时间段内(例如,超过五分钟的时间段 - 这比平均值多)的请求数脚本执行时间),然后乘以 2 以获得确保可以处理负载所需的脚本部署数量。在这种情况下,您需要为同一个脚本创建 10 个部署。
如果不清楚,请告诉我。
var status=nlapiScheduleScript(scriptId,deploymentId,params)
所以在这里你可以在检查状态为 inQueue 后使用不同的 deploymentId。
要扩展 Saqib 的答案,您可以创建脚本的多个部署,然后调用 nlapiScheduleScript 并为部署 ID 参数提供空值。这将立即执行免费可用的脚本部署并将其放入队列中。