1. Go to this page and download the library: Download aol/offload library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?phprequire_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
aol / offload example snippets
$offload = new OffloadManager(/* ... */);
// Fetch a result and repopulate it if necessary.
$data = $offload->fetch('task-key', function(){
// Perform a time consuming task...return $data;
})->getData();
// Setup a cache.
$cache = new OffloadCacheMemcached($memcached_instance);
// Setup a lock.
$lock = new OffloadLockRedis($predis_instance);
// Default options for offload manager:
$default_options = [
'ttl_fresh' => 5, // Cache time in seconds'ttl_stale' => 5, // Stale cache time in seconds'exclusive' => true, // Whether to run tasks exclusively by key (no concurrent repopulates for the same key)'background' => true, // Whether to run tasks in the background'background_timeout' => 5, // Timeout for exclusive background repopulates in seconds
];
// Create the offload manager.
$offload = new OffloadManager($cache, $lock, $default_options);
// ...
register_shutdown_function(function()use($offload){
if ($offload->hasWork()) {
// Flush all buffers.while (ob_get_level()) {
ob_end_flush();
}
flush();
// End the request if possible (under PHP FPM).if (function_exists('fastcgi_finish_request')) {
fastcgi_finish_request();
}
// Run all tasks in the queue.
$offload->drain();
}
});
$result = $offload->fetch($key, $repopulate, ['ttl_fresh' => 5]);
// is the same as:
$result = $offload->fetchCached($key, 5, $repopulate);
$result = $offload->queue($key, $repopulate, ['ttl_fresh' => 5]);
// is the same as:
$result = $offload->queueCached($key, 5, $repopulate);
$offload->fetch($key, function(OffloadRun $run){
// Get some data from a service...
$object = $this->service->get($arguments);
if (!$object->isValid()) {
// If the data returned is not valid, mark the result as bad.// This will tell the offload manager *not to cache* the data.
$run->setBad();
}
});
// Get the base encoder.
$base_encoder = $offload->getCache()->getEncoder();
// Wrap it with an encrypting encoder.
$encrypting_encoder = new OffloadEncoderEncryptedAes256(
$base_encoder,
// The key ID for the encryption.'foo',
// Secret keys by ID. This enables key cycling.
[
'foo' => 'my_secret_key'
]
)
$offload->getCache()->setEncoder($encrypting_encoder);