The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#9
|
||||
|
||||
![]()
the way I though of it was:
make an extra table cronjobs with the following fields: ID, (the unique ID) includeFile, (the file to be included, containing the necesary functions) lastExecuted, (timestamp on which the cron was last executed to determine if it should be executed or not.) busy (a flag to set it on busy to ensure no 2 users will execute the same job concurrently) then in global.php add an extra query: select * from cronjobs where (lastExecuted - unix_timestamp()) > 24*60*60 then loop through each cronjob, set busy to 1 and include includeFile. when finished the includeFile should set lastExecuted to the current timestamp.: while($DB_site->fetch_array($results)) {$DB_site->query("UPDATE cronjobs SET busy = 1 where ID = $result[ID]"; include($results[includeFile]); } drawbacks: -an extra query (on every page) -it's not ensured that the semi-cronjob is executed (allthough highly likely: the more visitors a day, the more likely) -one visitor a day should experience the extra load of including the include file but I agree with you: it may be sufficient to only in clude the croncheck on ONE particular page instead of every page so that the extra query isn't included in every page... possible pages to perform the check: -usercp -register -search -pm The thing I like about this is that you can make it kinda modular. You can built in a cp-function to insert/edit/maintain a new semi-cronjob and it'll work immediately. People can create their own cronjobs and share them amongst people. No code of vb would be touched. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|