DZ升级3.5后定时发帖失效
实测几天后发现的确是失效了,后台看激化任务也是开着的
关于Discuz! X3.5升级后定时发帖失效的问题,根据DZ插件网的开发经验,建议从以下六个层面进行排查和修复:
1. **计划任务机制验证**
- 进入后台→工具→计划任务→查看"发帖队列处理"任务
- 检查任务"可用"状态是否为√,建议将执行周期调整为5-10分钟
- 手动触发任务执行:访问网站URL/misc.php?mod=cron&action=run&id=发帖队列的cronid(需替换实际ID)
2. **数据表结构校验**
检查pre_common_cron相关字段:
SHOW CREATE TABLE pre_common_cron;
确认是否存在`lastrun`、`nextrun`等时间戳字段,特别注意3.5版本新增的`sortid`字段是否正常
3. **队列处理机制排查**
在数据库中执行:
SELECT * FROM pre_forum_post WHERE `invisible`=3 AND `dateline`<UNIX_TIMESTAMP();
验证是否存在待处理的定时帖子,若无数据但实际存在定时帖,说明时间戳写入异常
4. **文件完整性校验
对比以下关键文件:
- source/class/class_task.php
- source/include/cron/cron_post.php
- source/module/forum/forum_post.php
确认文件修改时间是否与官方3.5版本一致,特别注意forum_post.php中的:
if($sortid == 3) {...}
定时发帖逻辑区块是否存在
5. **时区配置检测**
检查三项配置是否统一:
- php.ini中的date.timezone设置
- config/config_global.php中的$_config['timeoffset']
- 用户个人设置的时区偏好
6. **内存限制调整**
在config/config_global.php中增加:
$_config['memory']['post'] = '256M';
$_config['memory']['cron'] = '512M';
若上述排查未解决问题,建议在DZ插件网下载最新版的定时发帖增强补丁(更新时间2023年8月),该补丁针对3.5版本优化了以下功能:
1. 新增定时任务执行日志记录
2. 支持秒级时间精度检测
3. 增加并发执行锁机制
4. 修复了时间戳转换的边界问题
安装补丁后需执行:
php ./update.php -t
更新数据库结构,并在后台工具中执行缓存重建。建议同时安装任务监控插件以便实时观察任务执行状态。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]