xMagic- 仓湖云函数数字应用平台
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
  1. xScript - x16.25.11
  • xMagic - 仓湖云函数数字应用平台
  • xScript - 仓湖云函数数字应用引擎
  • xMagic - 二开应用场景案例
  • 数据应用
    • 消息订阅(WSS)
    • 消息订阅(SSE)
    • 用户信息
    • 免密登陆(短信)
  • xScript - x16.25.11
    • assert
    • buffer
    • color
    • compress
    • console
    • crontab
    • crypto
    • encoding
    • events
    • evenloop
    • esm
    • fetch
    • fs
    • image
    • kv
    • mail
    • ml
    • mqtt
    • multipart
    • net
    • os
    • path
    • process
    • protobuf
    • querystring
    • redis
    • request
    • require
    • sql
    • tty
    • tui
    • ua
    • url
    • util
    • websocket
    • xml
    • yaml
    • mongo
    • http
    • stream
    • runtime
  • 小工具
    • APS - 代理转发
      • Any Proxy Service - 高级 HTTP/HTTPS/gRPC 代理转发工具
      • 配置指南 - 双向 Headers 和 Match/Replace
  • 数据模型
    • Schemas
      • AdminChangeAvatarReq
      • casbin.CasbinRule
      • AdminDelBatchReq
      • entity.DeptLable
      • AdminDelReq
      • entity.DevGenTable
      • AdminListReq
      • entity.DevGenTableColumn
      • AdminLoginReq
      • entity.FlowWorkClassify
      • AdminPostReq
      • entity.FlowWorkInfo
      • AdminReply
      • entity.FlowWorkTemplates
      • AdminUpdatePwdReq
      • entity.LogLogin
      • MenuDelBatchReq
      • entity.LogOper
      • MenuDelReq
      • entity.LoginM
      • MenuListReq
      • entity.MenuLable
      • MenuPostReq
      • entity.MenuPath
      • MenuReply
      • entity.ResEmail
      • RoleApisReq
      • entity.ResOss
      • SystemApiDelBatchReq
      • entity.ScreenGroupLabel
      • SystemApiDelReq
      • entity.SysApi
      • SystemApiListReq
      • entity.SysConfig
      • SystemApiPostReq
      • entity.SysDept
      • SystemApiReply
      • entity.SysDictData
      • SystemDepartmentDelBatchReq
      • entity.SysDictType
      • SystemDepartmentDelReq
      • entity.SysJob
      • SystemDepartmentListReq
      • entity.SysMenu
      • SystemDepartmentPostReq
      • entity.SysNotice
      • SystemDepartmentReply
      • entity.SysPost
      • SystemRoleApiDelBatchReq
      • entity.SysRole
      • SystemRoleApiDelReq
      • entity.SysTenants
      • SystemRoleApiListReq
      • entity.SysUser
      • SystemRoleApiPostReq
      • entity.SysUserB
      • SystemRoleApiReply
      • entity.SysUserId
      • SystemRoleDelBatchReq
      • entity.SysUserView
      • SystemRoleDelReq
      • entity.VisualRuleChain
      • SystemRoleListReq
      • entity.VisualScreen
      • SystemRoleMenuAddReq
      • entity.VisualScreenGroup
      • SystemRoleMenuDelBatchReq
      • form.Login
      • SystemRoleMenuDelReq
      • from.SendMail
      • SystemRoleMenuListReq
      • map[string]interface {}
      • SystemRoleMenuPostReq
      • map[string]string
      • SystemRoleMenuReply
      • model.BaseAutoModel
      • SystemRolePostReq
      • model.BaseModel
      • SystemRoleReply
      • model.ResultPage
      • model.ResultPage.data
      • vo.AuthVo
      • vo.DeptTreeVo
      • vo.MenuTreeVo
      • vo.MetaVo
      • vo.RouterVo
      • vo.TableInfoVo
      • vo.TokenVo
      • vo.UserRolePost
      • vo.UserVo
      • vo.UserVo.data
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
  1. xScript - x16.25.11

runtime

xScript Runtime Hook#

概述#

xScript 运行时提供了强大的脚本调用和管理功能。通过 runtime 全局对象,可以在 JavaScript 代码中动态执行其他脚本、管理并发任务、以及控制代理和终端访问权限。

版本信息#

引擎版本: xScript Engine for xScript 1.15.1.0

API 参考#

runtime.version#

返回当前 xScript 引擎的版本信息。

脚本执行 API#

runtime.call(script, ...args)#

同步调用并执行脚本或代码,等待执行完成并返回结果。
参数:
script (string): 脚本路径(.js文件)或 JavaScript 代码字符串
...args (any): 传递给被调用脚本的参数
返回值: 执行结果
示例:

runtime.exec(script, ...args)#

异步执行脚本或代码,不等待执行完成,立即返回。
参数:
script (string): 脚本路径(.js文件)或 JavaScript 代码字符串
...args (any): 传递给被调用脚本的参数
返回值: true (表示已启动执行)
示例:

runtime.callWithTimeout(script, ...args, timeout)#

带超时的同步调用,在指定时间内执行脚本。
参数:
script (string): 脚本路径或 JavaScript 代码
...args (any): 传递给脚本的参数
timeout (number): 超时时间(秒),作为最后一个参数传入
返回值: 执行结果
示例:

runtime.execWithTimeout(script, ...args, timeout)#

带超时的异步执行。
参数:
script (string): 脚本路径或 JavaScript 代码
...args (any): 传递给脚本的参数
timeout (number): 超时时间(秒),作为最后一个参数传入
返回值: true (表示已启动执行)
示例:

runtime.execWithContxt(script, ...args)#

使用上下文通道执行脚本,返回可用于同步控制的通道。
参数:
script (string): 脚本路径或 JavaScript 代码
...args (any): 传递给脚本的参数
返回值: 通道对象(channel),用于同步控制
示例:

线程并发 API#

runtime.thread.match(reference, script1, script2, ...)#

并发执行多个脚本,返回第一个包含指定参考字符串的结果。
参数:
reference (string): 用于匹配的参考字符串
script1, script2, ... (string): 要执行的脚本路径(至少2个)
返回值: true 如果找到匹配,否则 false
示例:

runtime.thread.getOne(script1, script2, ...)#

并发执行多个脚本,返回第一个非空结果。
参数:
script1, script2, ... (string): 要执行的脚本路径(至少2个)
返回值: 第一个非空的执行结果
示例:

runtime.thread.getAll(script1, script2, ...)#

并发执行所有脚本,收集所有非空结果。
参数:
script1, script2, ... (string): 要执行的脚本路径(至少2个)
返回值: 包含所有非空结果的数组
示例:

代理管理 API#

runtime.proxy.register(username, password, lifetime)#

注册代理用户凭证。
参数:
username (string): 用户名
password (string): 密码
lifetime (number): 凭证有效期(秒),0或-1表示永久有效
返回值: true 成功,null 失败
示例:

runtime.proxy.has(username)#

检查代理用户是否存在。
参数:
username (string): 用户名
返回值: true 存在,false 不存在
示例:

runtime.proxy.remove(username)#

移除代理用户。
参数:
username (string): 用户名
返回值: true 成功,null 失败
示例:

runtime.proxy.list()#

列出所有代理用户。
返回值: 代理用户列表
示例:

终端访问管理 API#

runtime.xterm.register(token, lifetime)#

注册终端访问令牌。
参数:
token (string): 访问令牌
lifetime (number): 令牌有效期(秒),0或-1表示永久有效
返回值: true 成功,null 失败
示例:

runtime.xterm.has(token)#

检查终端令牌是否有效。
参数:
token (string): 访问令牌
返回值: true 有效,false 无效
示例:

runtime.xterm.remove(token)#

移除终端访问令牌。
参数:
token (string): 访问令牌
返回值: true 成功,null 失败
示例:

runtime.xterm.list()#

列出所有有效的终端令牌。
返回值: 令牌列表
示例:

runtime.cache#

脚本缓存管理。

使用场景#

1. 模块化脚本调用#

2. 后台任务处理#

3. 并发数据获取#

4. 访问控制管理#

5. 超时控制#


注意事项#

1.
脚本路径: 以 .js 结尾的参数被视为脚本文件路径,否则作为代码字符串执行
2.
同步 vs 异步: call 系列方法会阻塞等待结果,exec 系列方法立即返回
3.
超时机制: 超时时间以秒为单位,超时后脚本执行会被中断
4.
并发安全: 线程相关 API 内部处理了并发同步,可安全使用
5.
权限管理: 代理和终端令牌支持过期时间,-1 表示永不过期
6.
性能分析: 所有调用都会自动添加 pprof 标签,便于性能分析和调试

相关文件#

实现文件: lib/xscript/runtime/hook/call.go
依赖模块:
lib/xscript/engine - 核心引擎
lib/xscript/module/buffer - 缓冲处理
lib/xscript/module/webservice/secret - 凭证管理

许可证#

本文档描述的功能是 xScript 项目的一部分。
修改于 2025-11-05 12:23:08
上一页
stream
下一页
Any Proxy Service - 高级 HTTP/HTTPS/gRPC 代理转发工具
Built with