如何在 shell 脚本中进行异步函数调用

2023-11-21

我有一组由 shell 脚本执行的curl 命令。现在我想要的是所有这些命令都必须以固​​定的时间间隔执行(每个curl url 都不同),所以我想做的是异步调用

wait [sec]

在不同的等待时间内命令并执行不同的功能,例如

启动 5 个计时器,其中一个 120 秒,2 个 30 秒,3 个 3000 秒,依此类推。 然后,一旦它们完成,我想触发附加到每个超时的处理程序函数的执行。 我可以用 javascript 和 nodejs 轻松地做到这一点,因为它们是事件驱动的编程语言。但我对 shell 脚本知之甚少。那么,我还能如何实现这个或在 shell 脚本中进行此类异步调用呢? 我不知道我是否说得足够清楚,如果我说得不够清楚,我还应该提及哪些细节?


需要尝试的东西:

delayed_ajax() {
  local url=$1
  local callback=$2
  local seconds=$3

  sleep $seconds
  curl -s "$url" | "$callback"
}

my_handler() {
  # Read from stdin and do something.
  # E.g. just append to a file:
  cat >> /tmp/some_file.txt
}

for delay in 120 30 30 3000 3000; do
  delayed_ajax http://www.example.com/api/something my_handler $delay &
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 shell 脚本中进行异步函数调用 的相关文章

随机推荐

  • Symfony:电子邮件地址作为请求参数

    我在将 url 中的电子邮件地址传递到 symfony 应用程序时遇到一些问题 网址看起来像 example com unsubscribe email email protected 它总是会导致一个sfError404Exception
  • CookieAuthenticationOptions.LogoutPath 属性在 ASP.NET Core 2.1 中有何作用?

    在 ASP NET Core 2 1 中 谁能解释一下CookieAuthenticationOptions LogoutPath做 每文档它说 如果为处理程序提供了 LogoutPath 则对该路径的请求将根据 ReturnUrlPara
  • 如何用 CSS 替换文本?

    如何使用如下方法用 CSS 替换文本 pvw title img src IKON img visibility hidden 代替 img src IKON img 我需要使用可以替换文本的东西 我必须使用 让它发挥作用 div clas
  • 如何“计算”双精度值的正确小数位数?

    我需要帮助来保持精度double 如果我将文字分配给双精度数 则实际值会被截断 int main double x 7 40200133400 std cout lt lt x lt lt n 对于上面的代码片段 输出是7 402有没有办法
  • Spring Security:如何更改默认用户和密码?

    我的 pom xml 中有 Spring Security Spring Security 会自动配置默认用户和生成的密码
  • Eclipse 忽略不正确的 @Override 注释

    由于某种原因 我的 Eclipse 安装之一忽略了错误的设置 Override注释 例如 如果我把 Override对于未被覆盖的方法 它只是完全忽略它 关于如何将其恢复到显示错误注释方法错误的状态有什么想法吗 的定义 OverrideJa
  • 检查关联数组是否包含值,并检索数组中的键/位置

    我正在努力解释我想在这里做什么 所以如果我让你感到困惑 我深表歉意 我自己也同样困惑 我有一个像这样的数组 foo array array value gt 5680 text gt Red array value gt 7899 text
  • Pyspark - 获取使用 ParamGridBuilder 创建的模型的所有参数

    我正在使用 PySpark 2 0 参加 Kaggle 竞赛 我想知道模型的行为 RandomForest 取决于不同的参数 ParamGridBuilder 允许为单个参数指定不同的值 然后执行 我猜 整个参数集的笛卡尔积 假设我的Dat
  • 如何为动态生成的 IFRAME 设置 document.domain?

    我正在实施 CodeMirror http marijn haverbeke nl codemirror 在需要声明 document domain 的页面上 因为页面上有其他 IFRAMES CodeMirror 生成动态 IFRAME
  • Postgres 更新时会重写整行吗?

    我们在 Windows 2008 Server 上运行 Postgres 9 0 有一张大桌子 里面有一个bytea每行存储 0 5MB 二进制数据的列 CREATE TABLE files file id serial NOT NULL
  • 如何更改子组件的 标签样式?

    我在index html中有这个
  • Python中多键排序的效率

    我有一个字符串列表 我想按 Python 3 6 中的两个自定义键函数对其进行排序 比较多排序方法 按较小键排序 然后按主键排序 与多键方法 将键作为元组 major key lesser key 我可以看到后者比前者慢 2 倍以上 这很令
  • 连接 unicode 和变量

    我是 React 新手 在显示动态 unicode 值时遇到一些问题 u 1F680 become u MyVar String fromCodePoint将从其数字代码点获取该字符 并且parseInt将从十六进制字符串中获取数字 您的转
  • Objective-C 中的常量和“重复符号”链接器错误

    我在一些不同的类中声明了一个具有相同名称的常量 在它们的 m文件 这样 implementation MyViewController const NSInteger numberOfItems 6 end 但在尝试构建项目时出现 重复符号
  • 如何判断管道是否可写

    有没有一种方法 在 C 中 或者最好在 Perl 中 来确定是否可以写入命名管道 即有一个活动的读取过程 似乎如果我以非阻塞方式打开 打开会立即返回 但写入的选择也会立即返回 目标是如果读取端未准备好 则写入过程继续进行 即跳过发送 您很可
  • 将 Bidi 文本打印到图像

    我有一些使用 PIL 的 Python 代码 它将把 UTF 8 字符打印到图像上 我注意到 对于加入阿拉伯语等双向脚本 相同的代码无法正确连接字符 仅选择初始形式 不使用中间形式和最终形式 谁能推荐一种方法或技术来解决这个特定问题 如果您
  • Firebase Analytics 上传延迟

    有什么方法可以提高 Android 上记录事件的 Firebase Analytics 上传速率吗 目前它每小时上传一次 对于测试来说速度太慢 我在 jar 中找到了对以下键 具有硬编码默认值 的引用 但不知道如何更改它们 测量 上传 ba
  • Oracle 错误 ORA-06512

    只是不明白为什么它给我 ORA 06512 错误 PROCEDURE PX pNum INT pIdM INT pCv VARCHAR2 pSup FLOAT AS vSOME EX EXCEPTION BEGIN IF pNum lt 1
  • jftfdi jffi 对我的查询字符串做了什么?

    我们在项目中使用 JavaServer Faces 2 2 Mojarra 2 2 1 我注意到一些奇怪的事情 在一个名为reporting xhtml我在哪里使用f metadata与新的f viewAction我的浏览器 本例中为 Sa
  • 如何在 shell 脚本中进行异步函数调用

    我有一组由 shell 脚本执行的curl 命令 现在我想要的是所有这些命令都必须以固 定的时间间隔执行 每个curl url 都不同 所以我想做的是异步调用 wait sec 在不同的等待时间内命令并执行不同的功能 例如 启动 5 个计时