feat: add automatic git pull on homepage visit with rate limiting
Introduce a mechanism to automatically pull the latest changes from the git repository when the homepage is accessed. This ensures the application stays up-to-date without manual intervention. The feature includes a lock file (`/tmp/hustoj_git_pull.lock`) to prevent excessive pulls, limiting execution to at most once every 60 seconds. The git pull command runs in the background to avoid blocking the page load, with output logged to `/tmp/hustoj_git_pull.log`.
This commit is contained in:
@@ -2,6 +2,15 @@
|
||||
////////////////////////////Common head
|
||||
$cache_time = 30;
|
||||
$OJ_CACHE_SHARE = false;
|
||||
|
||||
// Auto git pull on homepage visit (at most once per 60 seconds)
|
||||
$git_pull_lock = '/tmp/hustoj_git_pull.lock';
|
||||
if (!file_exists($git_pull_lock) || (time() - filemtime($git_pull_lock)) > 60) {
|
||||
touch($git_pull_lock);
|
||||
$repo_dir = dirname(__DIR__);
|
||||
exec("cd " . escapeshellarg($repo_dir) . " && git pull > /tmp/hustoj_git_pull.log 2>&1 &");
|
||||
}
|
||||
|
||||
require_once( './include/cache_start.php' );
|
||||
require_once( './include/db_info.inc.php' );
|
||||
require_once( './include/memcache.php' );
|
||||
|
||||
Reference in New Issue
Block a user