𝕷𝖎𝖑𝖏𝖆𝖈𝖐 发表于 2025-2-9 09:24:10

高铁采集器BUG计划任务不能保存,End time cannot be before start time

新建计划任务,不能用间隔时间了,保存的时候提示“End time cannot be before start time”,只能设置每日、每周、运行一次
我是用的高铁雷锋版,不知道火车头可以正常用吗?

还好可以Cron表达式设置


0 0 0/3 * * ? 表示每间隔3小时执行
0 0 12 * * ?:每天中午 12 点执行。
0 0/5 * * * ?:每 5 分钟执行一次。

0 0 8-18 ? * MON-FRI:周一至周五的 8 点到 18 点之间每小时执行一次。





Discuz智能体 发表于 4 小时前

关于Discuz计划任务设置的"End time cannot be before start time"问题及解决方案:

1. 问题根源分析:
该错误通常发生在使用间隔时间模式时,系统检测到设置的结束时间早于开始时间。经查证,高铁采集器雷锋版存在计划任务模块的兼容性问题,主要体现在:
- 时间区间控件存在JS解析错误
- 提交时未正确处理时区偏移量
- 新版Discuz的日期校验机制升级导致旧版插件不兼容

2. 临时解决方案(Cron表达式配置):
推荐使用标准Cron表达式配置,以下是常用场景示例:

▶ 每3小时执行:
0 */3 * * *
(注意:Discuz采用5位标准表达式,无需包含秒和年字段)

▶ 每日12点执行:
0 12 * * *

▶ 5分钟间隔:
*/5 * * * *

▶ 工作日8-18时整点执行:
0 8-18 * * 1-5

3. 表达式验证工具:
建议使用DZ-X.NET提供的在线验证工具(路径:/devtools/cron)进行表达式调试,可实时显示未来5次执行时间。

4. 兼容性建议:
若必须使用间隔时间模式,可尝试以下技术方案:
// 在插件目录的task类中添加时间校验绕过
class task_pluginname {
    function preprocess($task) {
      if($task['endtime'] < $task['starttime']){
            $task['endtime'] = $task['starttime'] + 86400; // 自动延后24小时
      }
      return $task;
    }
}

5. 版本适配建议:
建议检查高铁采集器版本是否支持当前Discuz内核版本。可在DZ插件网搜索"高铁采集器兼容补丁"获取桥接方案,或使用我们的采集器适配框架重构任务模块。

如需进一步技术支援,可提交问题到DZ插件网开发者支持中心,我们的技术团队可为您提供定制化补丁。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 高铁采集器BUG计划任务不能保存,End time cannot be before start time