From 9667a3d3402d0b3bcb5a75988d75b849d3d70ff3 Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 24 Mar 2025 19:27:32 +0800 Subject: [PATCH] perf: add crontab check min 60m --- apps/i18n/lina/en.json | 2 +- apps/i18n/lina/es.json | 2 +- apps/i18n/lina/ja.json | 2 +- apps/i18n/lina/pt_br.json | 2 +- apps/i18n/lina/ru.json | 2 +- apps/i18n/lina/zh.json | 2 +- apps/i18n/lina/zh_hant.json | 2 +- apps/ops/mixin.py | 4 ++++ 8 files changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index cc6022d6a..d24ac5d2e 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -395,7 +395,7 @@ "CriticalLoad": "Serious", "CronExpression": "Complete crontab expression", "Crontab": "Crontab", - "CrontabDiffError": "Please ensure that the interval for scheduled execution is no less than ten minutes!", + "CrontabDiffError": "Please ensure that the interval for scheduled execution is no less than {minutes} minutes!", "CrontabHelpText": "If both interval and crontab are set, crontab is prioritized", "CrontabHelpTip": "For example: perform every sunday at 03:05 <5 3 * * 0>
use 5-digit linux crontab expressions (online tool)
", "CrontabOfCreateUpdatePage": "", diff --git a/apps/i18n/lina/es.json b/apps/i18n/lina/es.json index c6acb83cc..6cf0dddf6 100644 --- a/apps/i18n/lina/es.json +++ b/apps/i18n/lina/es.json @@ -394,7 +394,7 @@ "CriticalLoad": "Severo", "CronExpression": "Expresión completa de crontab", "Crontab": "Tareas programadas", - "CrontabDiffError": "¡Asegúrese de que el intervalo de tiempo para la ejecución regular no sea inferior a diez minutos!", + "CrontabDiffError": "¡Asegúrese de que el intervalo de tiempo para la ejecución regular no sea inferior a {minutes} minutos!", "CrontabHelpText": "Si se configuran simultáneamente interval y crontab, se prioriza crontab", "CrontabHelpTip": "Por ejemplo: ejecuta cada domingo a las 03:05 <5 3 * * 0>
utilizando una expresión de crontab de Linux de 5 posiciones (herramienta en línea)
", "CrontabOfCreateUpdatePage": "Por ejemplo: ejecuta cada domingo a las 03:05 <5 3 * * 0>
utilizando una expresión de crontab de Linux de 5 posiciones (herramienta en línea)
Si se establecen tanto la ejecución programada como la ejecución cíclica, se dará prioridad a la ejecución programada.", diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json index e834ccf3c..b8235ec1e 100644 --- a/apps/i18n/lina/ja.json +++ b/apps/i18n/lina/ja.json @@ -398,7 +398,7 @@ "CriticalLoad": "重大", "CronExpression": "crontab完全表現", "Crontab": "定時実行タスク", - "CrontabDiffError": "定期実行の間隔が10分以上であることをご確認ください!", + "CrontabDiffError": "定期実行の間隔が{minutes}分以上であることをご確認ください!", "CrontabHelpText": "同時にintervalとcrontabを設定した場合、crontabが優先されます", "CrontabHelpTip": "例えば:日曜日の03:05に実行 <5 3 * * 0>
5桁のlinux crontab表現を使用 (オンラインツール)
", "CrontabOfCreateUpdatePage": "例:毎週日曜日の03:05に実行 <5 3 * * 0>
5桁のLinux crontab表現を使用してください <分 時 日 月 星期> (オンラインツール)
定期的な実行と周期的な実行が設定されている場合、定期的な実行が優先されます", diff --git a/apps/i18n/lina/pt_br.json b/apps/i18n/lina/pt_br.json index 279ab4784..7d0f53086 100644 --- a/apps/i18n/lina/pt_br.json +++ b/apps/i18n/lina/pt_br.json @@ -395,7 +395,7 @@ "CriticalLoad": "Grave", "CronExpression": "Expressão Completa do Crontab", "Crontab": "Tarefas programadas", - "CrontabDiffError": "Por favor, certifique-se de que o intervalo de tempo para execução regular não seja menor que dez minutos!", + "CrontabDiffError": "Por favor, certifique-se de que o intervalo de tempo para execução regular não seja menor que {minutes} minutos!", "CrontabHelpText": "Se interval e crontab estiverem configurados ao mesmo tempo, crontab terá prioridade", "CrontabHelpTip": "Por exemplo: execute todos os domingos às 03:05 <5 3 * * 0>
Use a expressão linux crontab de 5 posições (Ferramenta online)
", "CrontabOfCreateUpdatePage": "Por exemplo: Execute todos os domingos às 03:05 <5 3 * * 0>
Use a expressão crontab Linux de 5 dígitos (Ferramenta online)
Se a execução periódica e a execução regular forem definidas ao mesmo tempo, a execução regular terá prioridade", diff --git a/apps/i18n/lina/ru.json b/apps/i18n/lina/ru.json index 767143892..23e94a4bc 100644 --- a/apps/i18n/lina/ru.json +++ b/apps/i18n/lina/ru.json @@ -394,7 +394,7 @@ "CriticalLoad": "Серьезно", "CronExpression": "Полное выражение crontab", "Crontab": "Запланированные задачи", - "CrontabDiffError": "Пожалуйста, убедитесь, что интервал выполнения регулярно составляет не менее десяти минут!", + "CrontabDiffError": "Пожалуйста, убедитесь, что интервал выполнения регулярно составляет не менее {minutes} минут!", "CrontabHelpText": "Если одновременно установлены интервал и crontab, предпочтение отдается crontab", "CrontabHelpTip": "например: выполнять каждое воскресенье в 03:05 <5 3 * * 0>
использовать 5-значное выражение crontab Linux <минуты часы день месяц день_недели> (онлайн инструмент)
", "CrontabOfCreateUpdatePage": "Например: выполнять каждое воскресенье в 03:05 <5 3 * * 0>
Использовать 5-значное выражение crontab Linux <минуты часы день месяц день_недели> (онлайн инструмент)
Если одновременно установлены периодическое выполнение и циклическое выполнение, приоритет отдается периодическому выполнению", diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index 99b0b178c..91d458bc1 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -394,7 +394,7 @@ "CriticalLoad": "严重", "CronExpression": "crontab完整表达式", "Crontab": "定时任务", - "CrontabDiffError": "请确保定期执行的时间间隔不少于十分钟!", + "CrontabDiffError": "请确保定期执行的时间间隔不少于 {minutes} 分钟!", "CrontabHelpText": "如果同时设置了 interval 和 crontab,则优先考虑 crontab", "CrontabHelpTip": "例如:每周日 03:05 执行 <5 3 * * 0>
使用 5 位 linux crontab 表达式 (在线工具)
", "CrontabOfCreateUpdatePage": "例如:每周日 03:05 执行 <5 3 * * 0>
使用5位 Linux crontab 表达式 <分 时 日 月 星期> (在线工具
如果同时设置了定期执行和周期执行,优先使用定期执行", diff --git a/apps/i18n/lina/zh_hant.json b/apps/i18n/lina/zh_hant.json index 03e9615f6..9c400e711 100644 --- a/apps/i18n/lina/zh_hant.json +++ b/apps/i18n/lina/zh_hant.json @@ -398,7 +398,7 @@ "CriticalLoad": "嚴重", "CronExpression": "crontab完整表達式", "Crontab": "定時任務", - "CrontabDiffError": "請確保定期執行的時間間隔不少於十分鐘!", + "CrontabDiffError": "請確保定期執行的時間間隔不少於 {minutes} 分鐘!", "CrontabHelpText": "如果同時設定了 interval 和 crontab,則優先考慮 crontab", "CrontabHelpTip": "例如:每週日 03:05 執行 <5 3 * * 0>
使用 5 位 linux crontab 表達式 (線上工具)
", "CrontabOfCreateUpdatePage": "例如:每週日 03:05 執行 <5 3 * * 0>
使用5位 Linux crontab 表達式 <分 時 日 月 星期> (線上工具
如果同時設置了定期執行和週期執行,優先使用定期執行", diff --git a/apps/ops/mixin.py b/apps/ops/mixin.py index 1c8d1cff6..5279a1acd 100644 --- a/apps/ops/mixin.py +++ b/apps/ops/mixin.py @@ -188,6 +188,10 @@ class PeriodTaskSerializerMixin(serializers.Serializer): if isinstance(crontab, str) and len(crontab.strip().split()) != 5: msg = _('* Please enter a valid crontab expression') raise serializers.ValidationError(msg) + + crontab = crontab.strip().split() + if '*' in crontab[0]: + raise serializers.ValidationError(_("Crontab minute must not contain '*'")) return crontab def validate_interval(self, interval):