本文整理汇总了PHP中discuz_process::islocked方法的典型用法代码示例。如果您正苦于以下问题:PHP discuz_process::islocked方法的具体用法?PHP discuz_process::islocked怎么用?PHP discuz_process::islocked使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类discuz_process
的用法示例。
在下文中一共展示了discuz_process::islocked方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: viewthread_updateviews
function viewthread_updateviews($tableid)
{
global $_G;
if (!$_G['setting']['preventrefresh'] || $_G['cookie']['viewid'] != 'tid_' . $_G['tid']) {
if (!$tableid && $_G['setting']['optimizeviews']) {
if ($_G['forum_thread']['addviews']) {
if ($_G['forum_thread']['addviews'] < 100) {
C::t('forum_threadaddviews')->update_by_tid($_G['tid']);
} else {
if (!discuz_process::islocked('update_thread_view')) {
$row = C::t('forum_threadaddviews')->fetch($_G['tid']);
C::t('forum_threadaddviews')->update($_G['tid'], array('addviews' => 0));
C::t('forum_thread')->increase($_G['tid'], array('views' => $row['addviews'] + 1), true);
discuz_process::unlock('update_thread_view');
}
}
} else {
C::t('forum_threadaddviews')->insert(array('tid' => $_G['tid'], 'addviews' => 1), false, true);
}
} else {
C::t('forum_thread')->increase($_G['tid'], array('views' => 1), true, $tableid);
}
}
dsetcookie('viewid', 'tid_' . $_G['tid']);
}
示例2: build_cache_heats
function build_cache_heats()
{
global $_G;
$addsql = '';
$data = array();
if (discuz_process::islocked('update_heats_list')) {
return false;
}
if ($_G['setting']['indexhot']['status']) {
require_once libfile('function/post');
$_G['setting']['indexhot'] = array('status' => 1, 'limit' => intval($_G['setting']['indexhot']['limit'] ? $_G['setting']['indexhot']['limit'] : 10), 'days' => intval($_G['setting']['indexhot']['days'] ? $_G['setting']['indexhot']['days'] : 7), 'expiration' => intval($_G['setting']['indexhot']['expiration'] ? $_G['setting']['indexhot']['expiration'] : 900), 'messagecut' => intval($_G['setting']['indexhot']['messagecut'] ? $_G['setting']['indexhot']['messagecut'] : 200));
$messageitems = 2;
$limit = $_G['setting']['indexhot']['limit'];
foreach (C::t('forum_thread')->fetch_all_heats() as $heat) {
$post = C::t('forum_post')->fetch_threadpost_by_tid_invisible($heat['tid']);
$heat = array_merge($heat, (array) $post);
if ($limit == 0) {
break;
}
if ($messageitems > 0) {
$heat['message'] = !$heat['price'] ? messagecutstr($heat['message'], $_G['setting']['indexhot']['messagecut']) : '';
$data['message'][$heat['tid']] = $heat;
} else {
unset($heat['message']);
$data['subject'][$heat['tid']] = $heat;
}
$messageitems--;
$limit--;
}
$data['expiration'] = TIMESTAMP + $_G['setting']['indexhot']['expiration'];
}
savecache('heats', $data);
discuz_process::unlock('update_heats_list');
}
示例3: global_footer
public function global_footer()
{
global $_G, $_GET;
if (self::$securityStatus != TRUE) {
return false;
}
$formhash = formhash();
if ($_G['adminid']) {
$processName = 'securityOperate';
if (self::$isAdminGroup && !discuz_process::islocked($processName, 30)) {
$ajaxReportScript = <<<EOF
\t\t\t\t\t<script type='text/javascript'>
\t\t\t\t\tvar url = SITEURL + '/plugin.php?id=security:sitemaster';
\t\t\t\t\tvar x = new Ajax();
\t\t\t\t\tx.post(url, 'formhash={$formhash}', function(s){});
\t\t\t\t\t</script>
EOF;
}
}
$processName = 'securityRetry';
$time = 10;
if (!discuz_process::islocked($processName, $time)) {
if (C::t('#security#security_failedlog')->count()) {
$ajaxRetryScript = <<<EOF
\t\t\t\t\t<script type='text/javascript'>
\t\t\t\t\tvar urlRetry = SITEURL + '/plugin.php?id=security:job';
\t\t\t\t\tvar ajaxRetry = new Ajax();
\t\t\t\t\tajaxRetry.post(urlRetry, 'formhash={$formhash}', function(s){});
\t\t\t\t\t</script>
EOF;
}
}
return $ajaxReportScript . $ajaxRetryScript;
}
示例4: updatersscache
function updatersscache($num)
{
global $_G;
$processname = 'portal_rss_cache';
if (discuz_process::islocked($processname, 600)) {
return false;
}
C::t('portal_rsscache')->truncate();
require_once libfile('function/post');
foreach ($_G['cache']['portalcategory'] as $catid => $catarray) {
$query = C::t('portal_article_title')->fetch_all_for_cat($catid, 0, 1, 0, $num);
$catarray['catname'] = addslashes($catarray['catname']);
foreach ($query as $article) {
$article['author'] = $article['author'] != '' ? addslashes($article['author']) : ($article['username'] ? addslashes($article['username']) : 'Anonymous');
$article['title'] = addslashes($article['title']);
$articleattach = C::t('portal_attachment')->fetch_by_aid_image($article['aid']);
$attachdata = '';
if (!empty($articleattach)) {
$attachdata = "\t" . $articleattach['remote'] . "\t" . $articleattach['attachment'] . "\t" . $articleattach['filesize'];
}
$article['description'] = addslashes(messagecutstr($article['summary'], 250 - strlen($attachdata)) . $attachdata);
C::t('portal_rsscache')->insert(array('lastupdate' => $_G['timestamp'], 'catid' => $catid, 'aid' => $article['aid'], 'dateline' => $article['dateline'], 'catname' => $catarray['catname'], 'author' => $article['author'], 'subject' => $article['title'], 'description' => $article['description']));
}
}
discuz_process::unlock($processname);
return true;
}
示例5: updatersscache
function updatersscache($num)
{
global $_G;
$processname = 'portal_rss_cache';
if (discuz_process::islocked($processname, 600)) {
return false;
}
DB::query("DELETE FROM " . DB::table('portal_rsscache') . "");
require_once libfile('function/post');
foreach ($_G['cache']['portalcategory'] as $catid => $catarray) {
$query = DB::query("SELECT aid, username, author, dateline, title, summary\r\n\t\t\tFROM " . DB::table('portal_article_title') . "\r\n\t\t\tWHERE catid='{$catid}' AND status=0\r\n\t\t\tORDER BY aid DESC LIMIT {$num}");
$catarray['catname'] = addslashes($catarray['catname']);
while ($article = DB::fetch($query)) {
$article['author'] = $article['author'] != '' ? addslashes($article['author']) : ($article['username'] ? addslashes($article['username']) : 'Anonymous');
$article['title'] = addslashes($article['title']);
$articleattach = DB::fetch_first("SELECT * FROM " . DB::table('portal_attachment') . " WHERE aid='" . $article['aid'] . "' AND isimage=1");
$attachdata = '';
if (!empty($articleattach)) {
$attachdata = "\t" . $articleattach['remote'] . "\t" . $articleattach['attachment'] . "\t" . $articleattach['filesize'];
}
$article['description'] = addslashes(messagecutstr($article['summary'], 250 - strlen($attachdata)) . $attachdata);
DB::query("REPLACE INTO " . DB::table('portal_rsscache') . " (lastupdate, catid, aid, dateline, catname, author, subject, description)\r\n\t\t\t\tVALUES ('{$_G['timestamp']}', '{$catid}', '{$article['aid']}', '{$article['dateline']}', '{$catarray['catname']}', '{$article['author']}', '{$article['title']}', '{$article['description']}')");
}
}
discuz_process::unlock($processname);
return true;
}
示例6: global_footer
function global_footer()
{
global $_G;
if (!$this->_secStatus) {
return false;
}
$formhash = formhash();
$ajaxReportScript = '';
$processName = 'securitOperate';
if ($this->isAdminGroup && !discuz_process::islocked($processName, 10)) {
$ajaxReportScript = <<<EOF
\t\t\t<script type='text/javascript'>
\t\t\tvar url = SITEURL + '/plugin.php?id=security:sitemaster';
\t\t\tvar x = new Ajax();
\t\t\tx.post(url, 'formhash={$formhash}', function(s){});
\t\t\t</script>
EOF;
}
$processName = 'securitRetry';
$time = 5;
if ($_G['gp_d']) {
$time = 1;
}
if (!discuz_process::islocked($processName, $time)) {
$ajaxRetryScript = <<<EOF
\t\t\t<script type='text/javascript'>
\t\t\tvar urlRetry = SITEURL + '/plugin.php?id=security:job';
\t\t\tvar ajaxRetry = new Ajax();
\t\t\tajaxRetry.post(urlRetry, 'formhash={$formhash}', function(s){});
\t\t\t</script>
EOF;
}
return $ajaxReportScript . $ajaxRetryScript;
}
示例7: run
public static function run($cronid = 0)
{
global $_G;
$cron = $cronid ? C::t('common_cron')->fetch($cronid) : C::t('common_cron')->fetch_nextrun(TIMESTAMP);
$processname = 'DZ_CRON_' . (empty($cron) ? 'CHECKER' : $cron['cronid']);
if ($cronid && !empty($cron)) {
discuz_process::unlock($processname);
}
if (discuz_process::islocked($processname, 600)) {
return false;
}
if ($cron) {
$cron['filename'] = str_replace(array('..', '/', '\\'), '', $cron['filename']);
$cronfile = DISCUZ_ROOT . './source/include/cron/' . $cron['filename'];
$cron['minute'] = explode("\t", $cron['minute']);
self::setnextime($cron);
@set_time_limit(1000);
@ignore_user_abort(TRUE);
if (!@(include $cronfile)) {
return false;
}
}
self::nextcron();
discuz_process::unlock($processname);
return true;
}
示例8: updatersscache
function updatersscache($num)
{
global $_G;
$processname = 'forum_rss_cache';
if (discuz_process::islocked($processname, 600)) {
return false;
}
DB::query("DELETE FROM " . DB::table('forum_rsscache') . "");
require_once libfile('function/post');
foreach ($_G['cache']['forums'] as $fid => $forum) {
if ($forum['type'] != 'group') {
$query = DB::query("SELECT tid, readperm, author, dateline, subject\n\t\t\t\tFROM " . DB::table('forum_thread') . "\n\t\t\t\tWHERE fid='{$fid}' AND displayorder>='0'\n\t\t\t\tORDER BY tid DESC LIMIT {$num}");
$forum['name'] = addslashes($forum['name']);
while ($thread = DB::fetch($query)) {
$thread['author'] = $thread['author'] != '' ? addslashes($thread['author']) : 'Anonymous';
$thread['subject'] = addslashes($thread['subject']);
$posttable = getposttablebytid($thread['tid']);
$post = DB::fetch_first("SELECT pid, attachment, message, status FROM " . DB::table($posttable) . " WHERE tid='{$thread['tid']}' AND first='1'");
$attachdata = '';
if ($post['attachment'] == 2) {
$attach = DB::fetch_first("SELECT remote, attachment, filesize FROM " . DB::table(getattachtablebytid($thread['tid'])) . " WHERE pid='{$post['pid']}' AND isimage='1' ORDER BY dateline LIMIT 1");
$attachdata = "\t" . $attach['remote'] . "\t" . $attach['attachment'] . "\t" . $attach['filesize'];
}
$thread['message'] = $post['message'];
$thread['status'] = $post['status'];
$thread['description'] = $thread['readperm'] > 0 || $thread['price'] > 0 || $thread['status'] & 1 ? '' : addslashes(messagecutstr($thread['message'], 250 - strlen($attachdata)) . $attachdata);
DB::query("REPLACE INTO " . DB::table('forum_rsscache') . " (lastupdate, fid, tid, dateline, forum, author, subject, description)\n\t\t\t\t\tVALUES ('{$_G['timestamp']}', '{$fid}', '{$thread['tid']}', '{$thread['dateline']}', '{$forum['name']}', '{$thread['author']}', '{$thread['subject']}', '{$thread['description']}')");
}
}
}
discuz_process::unlock($processname);
return true;
}
示例9: run
function run($cronid = 0)
{
global $_G;
$timestamp = TIMESTAMP;
$cron = DB::fetch_first("SELECT * FROM " . DB::table('common_cron') . "\n\t\t\t\tWHERE " . ($cronid ? "cronid='{$cronid}'" : "available>'0' AND nextrun<='{$timestamp}'") . "\n\t\t\t\tORDER BY nextrun LIMIT 1");
$processname = 'DZ_CRON_' . (empty($cron) ? 'CHECKER' : $cron['cronid']);
if ($cronid && !empty($cron)) {
discuz_process::unlock($processname);
}
if (discuz_process::islocked($processname, 600)) {
return false;
}
if ($cron) {
$cron['filename'] = str_replace(array('..', '/', '\\'), '', $cron['filename']);
$cronfile = DISCUZ_ROOT . './source/include/cron/' . $cron['filename'];
$cron['minute'] = explode("\t", $cron['minute']);
discuz_cron::setnextime($cron);
@set_time_limit(1000);
@ignore_user_abort(TRUE);
if (!@(include $cronfile)) {
return false;
}
}
discuz_cron::nextcron();
discuz_process::unlock($processname);
return true;
}
示例10: run_timing
function run_timing($a)
{
global $_G;
$timestamp = TIMESTAMP;
$processname = 'TIMING_CRON_CHECK';
$check = DB::result(DB::query("SELECT COUNT(*) FROM " . DB::table('strayer_timing') . " WHERE public_dateline<='{$timestamp}' "), 0);
if ($check) {
discuz_process::unlock($processname);
}
if (discuz_process::islocked($processname, 600)) {
return false;
}
if (!$check) {
return FALSE;
}
@set_time_limit(1000);
@ignore_user_abort(TRUE);
//防止发生异常,先预订一个1小时的总时间,假如发布文章需要2小时才完成。还未到2小时,又被触发了,这样会造成文章的重复发布
save_syscache('pick_timing', TIMESTAMP + 60 * 60 * 1);
$optype_arr = array(1 => 'move_portal', 2 => 'move_forums', 3 => 'move_blog');
$query = DB::query("SELECT * FROM " . DB::table('strayer_timing') . " WHERE public_dateline<='{$timestamp}' ORDER by public_dateline");
$timing_aid_arr = $tid_arr = $args = array();
while ($rs = DB::fetch($query)) {
$timing_aid_arr[] = dstripslashes($rs);
$tid_arr[] = $rs['id'];
}
if (!$timing_aid_arr) {
return;
}
pload('F:article,F:pick');
article_timing_delete($tid_arr);
//不管有没有发布成功,先清理掉定时发布表里面的数据,防止文章又被重复检测到
foreach ($timing_aid_arr as $k => $rs) {
$args = unserialize($rs['public_info']);
$args['aid'] = array($rs['data_id']);
$args['pid'] = $rs['pid'];
$args['timing'] = 1;
$args['cron_run'] = 1;
$args['public_time'][$rs['data_id']] = $rs['public_dateline'];
article_import($optype_arr[$rs['public_type']], $args);
}
save_syscache('pick_timing', TIMESTAMP + 600);
//成功运行,时间按正常设置
discuz_process::unlock($processname);
return true;
}
示例11: run
/**
* 运行cron
*
* @param int $cronid 执行某个cron,如果不指定则运行当前需要运行的
* @return true
*/
public static function run($cronid = 0)
{
global $_G;
$cron = $cronid ? C::t('common_cron')->fetch($cronid) : C::t('common_cron')->fetch_nextrun(TIMESTAMP);
//取出一条符合执行条件的计划任务
$processname = 'DZ_CRON_' . (empty($cron) ? 'CHECKER' : $cron['cronid']);
if ($cronid && !empty($cron)) {
discuz_process::unlock($processname);
//为手动执行计划任务解锁
}
if (discuz_process::islocked($processname, 600)) {
//检查计划任务进程是否上锁
return false;
}
if ($cron) {
//计划任务执行
$cron['filename'] = str_replace(array('..', '/', '\\'), '', $cron['filename']);
$efile = explode(':', $cron['filename']);
if (count($efile) > 1) {
$cronfile = in_array($efile[0], $_G['setting']['plugins']['available']) ? DISCUZ_ROOT . './source/plugin/' . $efile[0] . '/cron/' . $efile[1] : '';
} else {
$cronfile = DISCUZ_ROOT . './source/include/cron/' . $cron['filename'];
}
if ($cronfile) {
$cron['minute'] = explode("\t", $cron['minute']);
self::setnextime($cron);
//根据后台设置,更新该计划任务执行的时间
@set_time_limit(1000);
@ignore_user_abort(TRUE);
//设置与客户机断开不会终止脚本的执行
if (!@(include $cronfile)) {
//执行具体计划任务程序
return false;
}
}
}
self::nextcron();
//设置最近一次计划任务执行的时间
discuz_process::unlock($processname);
//解锁
return true;
}
示例12: exit
/**
* [Discuz!] (C)2001-2009 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: connect_check.php 27643 2012-02-08 11:20:46Z zhouxiaobo $
*/
if (!defined('IN_DISCUZ')) {
exit('Access Denied');
}
require_once libfile('function/connect');
require_once libfile('function/cloud');
$op = !empty($_G['gp_op']) ? $_G['gp_op'] : '';
if (!in_array($op, array('cookie'))) {
connect_ajax_ouput_message('0', '1');
}
if ($op == 'cookie') {
$settings = array();
$query = DB::query("SELECT skey, svalue FROM " . DB::table('common_setting') . " WHERE skey IN ('connect_login_times', 'connect_login_report_date')");
while ($setting = DB::fetch($query)) {
$settings[$setting['skey']] = $setting['svalue'];
}
if ($settings['connect_login_times'] && (empty($settings['connect_login_report_date']) || dgmdate(TIMESTAMP, 'Y-m-d') != $settings['connect_login_report_date'])) {
if (!discuz_process::islocked('connect_login_report', 600)) {
$result = connect_cookie_login_report($settings['connect_login_times']);
if (isset($result['status']) && $result['status'] == 0) {
DB::query("REPLACE INTO " . DB::table('common_setting') . " (`skey`, `svalue`)\n\t\t\t\tVALUES ('connect_login_times', '0'), ('connect_login_report_date', '" . dgmdate(TIMESTAMP, 'Y-m-d') . "')");
}
}
discuz_process::unlock('connect_login_report');
}
}
示例13: rawurlencode
$status = 2;
} else {
$payrequired = $_G['uid'] ? !C::t('common_credit_log')->count_by_uid_operation_relatedid($_G['uid'], 'BAC', $attach['aid']) : 1;
$status = $payrequired ? $status : 2;
}
$balance = $status != 2 ? $balance - $attach['price'] : $balance;
$sidauth = rawurlencode(authcode($_G['sid'], 'ENCODE', $_G['authkey']));
$aidencode = aidencode($aid, 0, $attach['tid']);
if (C::t('common_credit_log')->count_by_uid_operation_relatedid($_G['uid'], 'BAC', $aid)) {
showmessage('attachment_yetpay', "forum.php?mod=attachment&aid={$aidencode}", array(), array('redirectmsg' => 1));
}
$attach['netprice'] = $status != 2 ? round($attach['price'] * (1 - $_G['setting']['creditstax'])) : 0;
$lockid = 'attachpay_' . $_G['uid'];
if (!submitcheck('paysubmit')) {
include template('forum/attachpay');
} elseif (!discuz_process::islocked($lockid)) {
if (!empty($_GET['buyall'])) {
$aids = $prices = array();
$tprice = 0;
foreach (C::t('forum_attachment_n')->fetch_all_by_id('aid:' . $aid, 'pid', $attach['pid'], '', false, true) as $tmp) {
$aids[$tmp['aid']] = $tmp['aid'];
$prices[$tmp['aid']] = $status != 2 ? array($tmp['price'], round($tmp['price'] * (1 - $_G['setting']['creditstax']))) : array(0, 0);
}
if ($aids) {
foreach (C::t('common_credit_log')->fetch_all_by_uid_operation_relatedid($_G['uid'], 'BAC', $aids) as $tmp) {
unset($aids[$tmp['relatedid']]);
}
}
foreach ($aids as $aid) {
$tprice += $prices[$aid][0];
}
示例14: updatersscache
function updatersscache($num)
{
global $_G;
$processname = 'forum_rss_cache';
if (discuz_process::islocked($processname, 600)) {
return false;
}
C::t('forum_rsscache')->truncate();
require_once libfile('function/post');
foreach ($_G['cache']['forums'] as $fid => $forum) {
if ($forum['type'] != 'group') {
$forum['name'] = addslashes($forum['name']);
foreach (C::t('forum_thread')->fetch_all_by_fid_displayorder($fid, 0, null, null, 0, $num, 'tid') as $thread) {
$thread['author'] = $thread['author'] != '' ? addslashes($thread['author']) : 'Anonymous';
$thread['subject'] = addslashes($thread['subject']);
$post = C::t('forum_post')->fetch_threadpost_by_tid_invisible($thread['tid']);
$attachdata = '';
if ($post['attachment'] == 2) {
$attach = C::t('forum_attachment_n')->fetch_max_image('tid:' . $thread['tid'], 'pid', $post['pid']);
$attachdata = "\t" . $attach['remote'] . "\t" . $attach['attachment'] . "\t" . $attach['filesize'];
}
$thread['message'] = $post['message'];
$thread['status'] = $post['status'];
$thread['description'] = $thread['readperm'] > 0 || $thread['price'] > 0 || $thread['status'] & 1 ? '' : addslashes(messagecutstr($thread['message'], 250 - strlen($attachdata)) . $attachdata);
C::t('forum_rsscache')->insert(array('lastupdate' => $_G['timestamp'], 'fid' => $fid, 'tid' => $thread['tid'], 'dateline' => $thread['dateline'], 'forum' => $forum['name'], 'author' => $thread['author'], 'subject' => $thread['subject'], 'description' => $thread['description']), false, true);
}
}
}
discuz_process::unlock($processname);
return true;
}
示例15: getqrcode
public static function getqrcode()
{
global $_G;
if (!$_G['wechat']['setting']) {
$_G['wechat']['setting'] = unserialize($_G['setting']['mobilewechat']);
}
require_once DISCUZ_ROOT . './source/plugin/wechat/wechat.lib.class.php';
$wechat_client = new WeChatClient($_G['wechat']['setting']['wechat_appId'], $_G['wechat']['setting']['wechat_appsecret']);
$ticket = '';
if (!$_G['cookie']['wechat_ticket'] || $_G['wechat']['setting']['wechat_mtype'] == 1) {
$code = 0;
$i = 0;
do {
$code = rand(100000, 999999);
$codeexists = C::t('#wechat#mobile_wechat_authcode')->fetch_by_code($code);
$i++;
} while ($codeexists && $i < 10);
if ($_G['wechat']['setting']['wechat_mtype'] == 2) {
$option = array('scene_id' => $code, 'expire' => self::$QRCODE_EXPIRE, 'ticketOnly' => '1');
$ticket = $wechat_client->getQrcodeTicket($option);
if (!$ticket) {
showmessage('wechat:wechat_message_codefull');
}
dsetcookie('wechat_ticket', authcode($ticket . "\t" . $code, 'ENCODE'), self::$QRCODE_EXPIRE);
}
} else {
list($ticket, $code) = explode("\t", authcode($_G['cookie']['wechat_ticket'], 'DECODE'));
}
$isqrapi = $ticket ? $ticket : '';
if ($codeexists) {
showmessage('wechat:wechat_message_codefull');
}
$qrcodeurl = !$isqrapi ? $_G['setting']['attachurl'] . 'common/' . $_G['wechat']['setting']['wechat_qrcode'] : $_G['siteurl'] . 'plugin.php?id=wechat:qrcode&rand=' . random(5);
$codeenc = urlencode(base64_encode(authcode($code, 'ENCODE', $_G['config']['security']['authkey'])));
C::t('#wechat#mobile_wechat_authcode')->insert(array('sid' => $_G['cookie']['saltkey'], 'uid' => $_G['uid'], 'code' => $code, 'createtime' => TIMESTAMP), 0, 1);
if (!discuz_process::islocked('clear_wechat_authcode')) {
C::t('#wechat#mobile_wechat_authcode')->delete_history();
discuz_process::unlock('clear_wechat_authcode');
}
return array($isqrapi, $qrcodeurl, $codeenc, $code);
}