1

我正在尝试在 lua 中为 Citrix Netscaler 编写一个策略扩展,它计算字符串的 base64 并将其添加到标头中。大多数时候该函数工作得很好,但不止几次我看到ns.log它的执行被以下消息终止 -

终止执行,函数超出时间限制。

在文档中我找不到确切的时间限制(从我看到的大约 1 毫秒,这对我来说没有意义)或如何配置它。

所以我的问题是:这个属性是否可配置,如果可以,如何配置?

4

2 回答 2

0

为什么你需要去'lua'?使用策略表达式,您可以执行 text.b64encode 或 text.b64decode 。我没有回答您的问题,但您可能不知道 Netscaler 中的内置编码器/解码器。

于 2017-12-29T03:36:34.040 回答
0

虽然我没有任何官方文档,但我相信任何策略的最大执行时间都是 10 毫秒。柜台也证实了这一点。在 shell 上执行以下命令:

nsconmsg -K /var/nslog/newnslog -d stats -g 10ms -g timeout

您将看到所有具有这些名称的计数器。当您的脚本正在执行时,您可以运行

nsconmsg -d current-g 10ms -g timeout

这将让您实时查看计数器。当它失败时,您将看到值增加。

我想说您可以在脚本运行时在 ns.log 上打印时间以确认这一点。我不确切知道您在做什么,但请记住,netscaler 策略应该执行非常简短的执行,毕竟您正在处理一个数据包并且数据包的规模是纳秒级的。

于 2020-04-22T14:34:16.907 回答