/** * Record success/completion of a test variation. * * @access public * @param string $test_id * @return mixed */ public function addWin($test_id, $variation_id) { $this->getClient(); // increment the object hash count $wins = $this->client->hincrby('variation:' . $variation_id, 'wins', 1); // retrieve the variation views $pageviews = $this->client->hget('variation:' . $variation_id, 'pageviews'); // calculate ranking change $rank = 0.0; if ($pageviews > 0) { $rank = $wins / $pageviews; } // update the variation rankings $this->client->zadd('variations:sorted_by_rank', $rank, $variation_id); }
/** * {@inheritDoc} */ public function flush() { $this->redis->flushDb(); }
<?php /* |-------------------------------------------------------------------------- | Application Routes |-------------------------------------------------------------------------- | | Here is where you can register all of the routes for an application. | It's a breeze. Simply tell Laravel the URIs it should respond to | and give it the controller to call when that URI is requested. | */ Route::get('/', function () { return view('push'); }); Route::post('publish', function () { // Route logic... Predis::publish('test:channel', json_encode(['message' => Request::input('message')])); return 'ok'; });