高铁采集器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计划任务设置的"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]