Cron 表达式生成器
通过预设和下次执行时间可视化构建 cron 表达式。
0 0 * * *
易读的描述
Runs every day at midnight
关于此工具
Cron表达式是在Unix类系统、数据库和网络应用程序中用于任务调度的标准语法。由于其使用5个或6个字段来表示分钟、小时、日期、月份和星期几的模式,这种简洁的格式使得正确编写变得困难。本工具通过提供一个可视化界面来消除这种困难,您可以使用直观的下拉菜单和单选按钮选择所需的时间表,然后立即看到相应的cron表达式和下次执行时间。
要使用该工具,首先从常见的预设(如"每分钟"、"每小时"、"每天特定时间"或"自定义")中选择所需的调度频率。选择预设或自定义选项后,使用交互式控件调整特定的时间或日期约束。该工具会立即生成标准的cron表达式语法并显示下次执行时间,让您能够在部署到应用程序前轻松验证您的时间表。这在配置后台任务、数据库维护或自动报表时特别有用,因为在这些场景中准确性至关重要。
常见问题
代码实现
import re
def describe_cron(expression: str) -> str:
"""Parse a cron expression and return a plain-text description."""
parts = expression.strip().split()
if len(parts) != 5:
raise ValueError("Expected 5 fields: minute hour day month weekday")
minute, hour, day, month, weekday = parts
def field(val, unit):
if val == "*": return f"every {unit}"
if val.startswith("*/"):
return f"every {val[2:]} {unit}s"
if "," in val:
return f"{unit}s {val}"
if "-" in val:
lo, hi = val.split("-")
return f"from {unit} {lo} to {hi}"
return f"at {unit} {val}"
months = ["", "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
parts_desc = [
field(minute, "minute"),
field(hour, "hour"),
field(day, "day-of-month"),
field(month, "month"),
field(weekday, "weekday"),
]
return ", ".join(parts_desc)
# Examples
print(describe_cron("0 9 * * 1-5")) # Every weekday at 9 AM
print(describe_cron("*/15 * * * *")) # Every 15 minutes
print(describe_cron("0 0 1 * *")) # First day of every month at midnightComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.