View Single Post
  #1013  
Old 10-09-2009, 06:42 AM
angeljs's Avatar
angeljs angeljs is offline
 
Join Date: Aug 2005
Location: UK
Posts: 384
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by toivo View Post
Hi Kevin,

Here is the code, working under vB 3.6.8. Replace the variables $forum_url and $cron_url.

The script reads the home page, extracts the cron.php with the parameters from the result and then sends a request for cron.php which runs the scheduled task(s).

Check the results from the vB back end to adjust the interval in your crontab or Windows scheduler, depending on which other cron jobs your site has.

Code:
<?php
/**
 * @forum_read.php
 * @20080723 toivo@totaldata.biz
 * reads the forum home page and triggers cron jobs to run
 * tested on vBulletin 3.6.8.
 * requires php >= 4.3.0
 */

$forum_url = 'http://example.com/testvb/index.php';
// cron url from <img src=
$cron_url = 'http://example.com/testvb/cron.php?';

// access forum
$run_status = forum_read($forum_url, $cron_url);
return;

function forum_read($forum_url, $cron_url) {
//  read file contents
  $page = file_get_contents($forum_url);
  if ($page === false) {
  	  $msg = "forum_read.php unable to read ".$forum_url;
  	  error_log($msg);
  	  return false;
  }
// find cron.php
  $cron_start_pos = strpos($page, $cron_url);

  $msg = '';
  if ($cron_start_pos === false) {
  	  $msg = "forum_read.php unable to find cron string";
  	  error_log($msg);
  	  return false;
  }

// end of url
  $cron_end_pos = strpos($page, '"', $cron_start_pos);
  if ($cron_end_pos === false) {
  	  $msg = "forum_read.php unable to find end of cron string";
  	  error_log($msg);
  	  return false;
  }
// extract full url string with cron.php
  $cron_url_length = $cron_end_pos - $cron_start_pos;
  $cron_full_url = substr($page, $cron_start_pos, $cron_url_length );
 //  read cron.php with parameters
  $page = file_get_contents($cron_full_url);
  if ($page === false) {
      $msg = 'forum_read.php '.$cron_full_url." : - PROBLEM?";
  	  error_log($msg);
  	  return false;
  }
  return true;
}
?>
If you are going to run it from Unix/Linux, a shell script similar to the following can be scheduled to run from a crontab entry:

Code:
#!/bin/bash
# load forum home page and read cron.php
php /root/forum_read/forum_read.php
exit 0

In Windows, you can run the script from a command file through the Windows scheduler.

Regards,
toivo
So would I have to set this up as a seperate cron job? Which command would I use for the cron and how often would it have to run? I'm a cron newbie, so any help would be appreciated.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01205 seconds
  • Memory Usage 1,769KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete