Skip to content

Instantly share code, notes, and snippets.

Created December 28, 2012 14:49
Show Gist options
  • Save anonymous/4398451 to your computer and use it in GitHub Desktop.
Save anonymous/4398451 to your computer and use it in GitHub Desktop.
<?php
use Predis\Async\Client as PredisClient;
function save(PredisClient $redis)
{
$deferred = new Deferred();
$saddDeferred = new Deferred();
$tx = $redis->multiExec();
$tx->incr('job-counter');
$tx->execute(function ($replies, $redis) use ($job, $deferred, $saddDeferred) {
$hashId = 'job-' . $replies[0];
$deferred->then(function() use ($client, $hashId, $saddDeferred) {
$saddDeferred->then(function() use ($hashId) {
return $hashId;
});
$client->sadd('jobs', $hashId, function() use ($hashId, $saddDeferred) {
$saddDeferred->resolve($hashId);
});
return $saddDeferred->promise();
});
$hash = array_merge(array($hashId), array('key' => 'value'), array(function() use ($deferred, $hashId){
$deferred->resolve($hashId);
}));
call_user_func_array(array($redis, 'hmset'), $hash);
});
return $saddDeferred->promise();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment