The first thing to do is to install Git on the remote server.
Once you do that the rest of the process is split into three sections:
- Server set-up
- Local set-up (push commits)
- Server (pull commits)
<?php | |
/** | |
* @author Alexis Gruet | |
* | |
* A simple implementation of the Weighted Round-Robin Scheduling in PHP 5.3+ | |
* | |
* The weighted round-robin scheduling is designed to better handle servers with different | |
* processing capacities. Each server can be assigned a weight, an integer value that | |
* indicates the processing capacity. Servers with higher weights receive new connections |
<?php | |
/** | |
* Todo: Send a random user agent string and sleep a random amount between requests. | |
*/ | |
if ($_SERVER['REQUEST_METHOD'] == 'POST') { | |
// Extract and sanatize input: | |
$domain = filter_input(INPUT_POST, 'domain', FILTER_SANITIZE_URL); | |
$terms = filter_input(INPUT_POST, 'terms', FILTER_SANITIZE_STRING); | |
// Setup Goutte (which also includes Guzzle): |
//Simple AJAX Polling jQuery Plugin | |
// example usage: | |
/* $.ajaxPoll({ | |
url: "/path", | |
type: "GET", | |
interval: 250, | |
maxAttempts: 25, | |
successCondition: function(result) { | |
return result != "processing"; | |
}, |
// Long Polling (Recommened Technique - Creates An Open Connection To Server ∴ Fast) | |
(function poll(){ | |
$.ajax({ url: "server", success: function(data){ | |
//Update your dashboard gauge | |
salesGauge.setValue(data.value); | |
}, dataType: "json", complete: poll, timeout: 30000 }); | |
})(); |