今天给各位分享discuz定时任务表的知识,其中也会对冒险岛定时表任务进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、discuz教程:计划任务每日不执行更新怎么办
这种情况一般是 有些插件的计划任务不执行导致的。
解决办法:
到后台-工具-计划任务查看一下,一般插件的计划任务都是在第一个,官方内置的计划任务都是cron_开头的。
找到这个计划任务。如果可以删除的话,直接删除即可。
如果删除不了的话。查看该插件是否未开启或者已删除,直接到数据库找到pre_common_cron这个表删除这个计划任务。
以上办法都无法解决可以考虑重置这个表pre_common_cron,到数据库执行如下字段即可。
DROP TABLE IF EXISTS pre_common_cron;
CREATE TABLE `pre_common_cron` (
`cronid` smallint(6) unsigned NOT NULL auto_increment,
`available` tinyint(1) NOT NULL default '0',
`type` enum('user','system','plugin') NOT NULL default 'user',
`name` char(50) NOT NULL default '',
`filename` char(50) NOT NULL default '',
`lastrun` int(10) unsigned NOT NULL default '0',
`nextrun` int(10) unsigned NOT NULL default '0',
`weekday` tinyint(1) NOT NULL default '0',
`day` tinyint(2) NOT NULL default '0',
`hour` tinyint(2) NOT NULL default '0',
`minute` char(36) NOT NULL default '',
PRIMARY KEY (`cronid`),
KEY `nextrun` (`available`,`nextrun`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=22 ;
INSERT INTO `pre_common_cron` (`cronid`, `available`, `type`, `name`, `filename`, `lastrun`, `nextrun`, `weekday`, `day`, `hour`, `minute`) VALUES
(1, 1, 'system', '清空今日发帖数', 'cron_todaypost_daily.php', 1416342963, 1416412800, -1, -1, 0, '0'),
(2, 1, 'system', '清空本月在线时间', 'cron_onlinetime_monthly.php', 1414791807, 1417363200, -1, 1, 0, '0'),
(3, 1, 'system', '每日数据清理', 'cron_cleanup_daily.php', 1416357390, 1416432600, -1, -1, 5, '30'),
(5, 1, 'system', '每日公告清理', 'cron_announcement_daily.php', 1416346616, 1416412800, -1, -1, 0, '0'),
(6, 1, 'system', '限时操作清理', 'cron_threadexpiry_hourly.php', 1416357391, 1416358800, -1, -1, -1, '0'),
(7, 1, 'system', '论坛推广清理', 'cron_promotion_hourly.php', 1416347376, 1416412800, -1, -1, 0, '00'),
(8, 1, 'system', '每月主题清理', 'cron_cleanup_monthly.php', 1414860761, 1417384800, -1, 1, 6, '00'),
(9, 1, 'system', '道具自动补货', 'cron_magic_daily.php', 1416347946, 1416412800, -1, -1, 0, '0'),
(10, 1, 'system', '每日验证问答更新', 'cron_secqaa_daily.php', 1416357391, 1416434400, -1, -1, 6, '0'),
(11, 1, 'system', '每日标签更新', 'cron_tag_daily.php', 1416347946, 1416412800, -1, -1, 0, '0'),
(12, 1, 'system', '每日勋章更新', 'cron_medal_daily.php', 1416347947, 1416412800, -1, -1, 0, '0'),
(13, 1, 'system', '清理过期动态', 'cron_cleanfeed.php', 1416347948, 1416412800, -1, -1, 0, '0'),
(14, 1, 'system', '每日获取安全补丁', 'cron_checkpatch_daily.php', 1416353617, 1416421320, -1, -1, 2, '22'),
(15, 1, 'system', '定时发布主题', 'cron_publish_halfhourly.php', 1416357391, 1416358800, -1, -1, -1, '0 30'),
(16, 1, 'system', '每周广播归档', 'cron_follow_daily.php', 1416350694, 1416420000, -1, -1, 2, '0'),
(17, 1, 'system', '更新每日查看数', 'cron_todayviews_daily.php', 1416357389, 1416423600, -1, -1, 3, '0 5 10 15 20 25 30 35 40 45 50 55'),
(18, 0, 'system', '每日用户表优化', 'cron_member_optimize_daily.php', 1377225651, 0, -1, -1, 2, '0 5 10 15 20 25 30 35 40 45 50 55'),
(19, 0, 'user', '防水墙每日优化', 'cron_security_daily.php', 1416351485, 1416420000, -1, -1, 2, '0'),
(20, 1, 'system', '统计今日热帖', 'cron_todayheats_daily.php', 1416348808, 1416412800, -1, -1, 0, '0'),
(21, 0, 'user', '更新版块最后发表(防水墙相关)', 'cron_security_cleanup_lastpost.php', 0, 0, -1, -1, -1, '0');
复制代码
到此问题即可解决。
2、如何添加管理Discuz,7.0论坛任务
登录你的dz后台找到扩展--论坛任务进行添加和管理
添加的任务如下:
3、php discuz的定时任务是什么原理怎么实现的?求高手解答
php中定时计划任务的实现原理:
当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限时,TIMEOUT 状态的标记将被打开。
示例代码:
?php
ignore_user_abort(true);set_time_limit(0);
date_default_timezone_set('PRC'); // 切换到中国的时间
$run_time = strtotime('+1 day'); // 定时任务第一次执行的时间是明天的这个时候
$interval = 3600*12; // 每12个小时执行一次
if(!file_exists(dirname(__FILE__).'/cron-run')) exit(); // 在目录下存放一个cron-run文件,如果这个文件不存在,说明已经在执行过程中了,该任务就不能再激活,执行第二次,否则这个文件被多次访问的话,服务器就要崩溃掉了
do {
if(!file_exists(dirname(__FILE__).'/cron-switch')) break; // 如果不存在cron-switch这个文件,就停止执行,这是一个开关的作用
$gmt_time = microtime(true); // 当前的运行时间,精确到0.0001秒
$loop = isset($loop) $loop ? $loop : $run_time - $gmt_time; // 这里处理是为了确定还要等多久才开始第一次执行任务,$loop就是要等多久才执行的时间间隔
$loop = $loop 0 ? $loop : 0;
if(!$loop) break; // 如果循环的间隔为零,则停止
sleep($loop);
// ...
// 执行某些代码
// ...
@unlink(dirname(__FILE__).'/cron-run'); // 这里就是通过删除cron-run来告诉程序,这个定时任务已经在执行过程中,不能再执行一个新的同样的任务
$loop = $interval;
} while(true);
discuz定时任务表的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于冒险岛定时表任务、discuz定时任务表的信息别忘了在本站进行查找喔。