Skip to main content

介绍

ReactGO 内置任务调度模块,它的工作方式类似于 UNIX 系统的 crontab,并且采用同样的表达式。

可以调度 2 种类型,一种是函数,一种是命令,函数是预先编译到 ReactGO 执行文件中的函数, 这些函数按照一定的规范编写。命令是系统中的可执行文件,例如 ls,也可以是你用任何语言编写的程序。

函数

函数是硬编码到 ReactGO 执行文件中的,它们不灵活,但是效率高,并且可以直接访问 ReactGO 的运行时环境。目前只有一个函数 test

命令

你可以用任何语言编写命令,例如 nodejs, ruby, python 都是可以的, 这可以充分利用各种语言和模块的优势,例如某个任务用 shell 写非常的便捷,用另外一种语言写就很麻烦。

运行命令需要的环境,例如 nodejs 需要的 npm 模块,需要你自己准备好,ReactGO 没有提供任何的环境。

重入

ReactGO 的任务调度是不可重入的,意思就是说,一个任务正在运行,还没有结束,那么不会再次调度这个任务。 除非:

  1. 为同一个命令增加了 2 个或多个调度;
  2. 手动触发;

手动触发

ReactGO 支持手动触发任务,这需要到管理后台去点一个按钮,手动触发会破坏重入规则。

环境变量

你可以为命令设置环境变量,这是传递参数的一种方式,例如某个命令在运行时需要访问一个外部服务, 那个外部服务需要账号/密码,你当然可以将账号/密码硬编码到命令中,但不够灵活,且不够安全, 你可以在环境变量中配置。