You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术请求:获取提取ID的正则表达式及每90秒执行的合法Cron表达式

一、提取ID的正则表达式

正则表达式需要根据你要匹配的具体字符串模式调整,以下是几种常见场景的实用示例:

  • 如果ID是纯数字(如 user_12345、/api/item/6789):
    用 (\d+) 捕获连续数字ID,比如匹配 order-9876 时,\d+ 会提取出 9876。
  • 如果ID包含字母、数字和下划线(如 abc_123_xyz):
    用 ([a-zA-Z0-9_]+) 适配通用标识符格式,捕获完整ID。
  • 如果ID有固定前缀(如 ticket:TKT-4567):
    用精准正则 ticket:TKT-(\d+),直接提取前缀后的数字ID部分。
二、每90秒执行的Cron表达式解决方案

你遇到的错误是因为Cron表达式本身不支持嵌入sleep命令,sleep是Shell命令,不能写在Cron的时间字段里。根据不同Cron环境,解决方案如下:

1. Linux系统标准Cron(最小单位为分钟)

标准Cron没有秒级控制,无法直接通过表达式实现每90秒执行,推荐用Shell脚本循环实现:

#!/bin/bash
# 循环执行任务,每次间隔90秒
while true; do
  # 替换为你的实际任务命令
  echo "执行定时任务"
  sleep 90
done

将脚本保存为 task_loop.sh,赋予执行权限 chmod +x task_loop.sh,然后:

  • 用nohup ./task_loop.sh &让脚本后台运行(重启后需重新执行);
  • 或配置systemd服务实现开机自启,避免进程意外终止。

2. 支持秒级的Cron(如Quartz框架)

Quartz的Cron格式为 秒 分 时 日 月 周 年,由于秒的取值范围是0-59,无法直接写0/90,可通过两个表达式组合实现每90秒执行:

  • 偶数分钟的0秒触发:0 0,2,4,...,58 * * ? *
  • 奇数分钟的30秒触发:30 1,3,5,...,59 * * ? *
    两者配合会在0分0秒、1分30秒、3分0秒、4分30秒...依次触发,每次间隔恰好90秒。

内容的提问来源于stack exchange,提问作者Kiran Kadam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 23:20:42