Browse Source

Fix fuel cache pb (#5223)

* add getUniqueRandomNumbers

* Update bench.php
jcheron 5 years ago
parent
commit
3b493e03eb
1 changed files with 18 additions and 6 deletions
  1. 18 6
      frameworks/PHP/fuel/fuel/app/classes/controller/bench.php

+ 18 - 6
frameworks/PHP/fuel/fuel/app/classes/controller/bench.php

@@ -2,9 +2,21 @@
 
 
 class Controller_Bench extends Controller
 class Controller_Bench extends Controller
 {
 {
+
+    private function getUniqueRandomNumbers($count, $min, $max)
+    {
+        $res = array();
+        do {
+            $res[\mt_rand($min, $max)] = 1;
+        } while (\count($res) < $count);
+        return \array_keys($res);
+    }
+
     public function action_json()
     public function action_json()
     {
     {
-        return new Response(json_encode(array('message' => 'Hello, World!')), 200, array(
+        return new Response(json_encode(array(
+            'message' => 'Hello, World!'
+        )), 200, array(
             'Content-Type' => 'application/json'
             'Content-Type' => 'application/json'
         ));
         ));
     }
     }
@@ -24,9 +36,9 @@ class Controller_Bench extends Controller
         $queries = is_numeric($queries) ? min(max($queries, 1), 500) : 1;
         $queries = is_numeric($queries) ? min(max($queries, 1), 500) : 1;
 
 
         $worlds = array();
         $worlds = array();
-
-        for($i = 0; $i < $queries; ++$i) {
-            $worlds[] = Model_World::find(mt_rand(1, 10000))->toJson();
+        $numbers = $this->getUniqueRandomNumbers($queries, 1, 10000);
+        foreach ($numbers as $id) {
+            $worlds[] = Model_World::find($id)->toJson();
         }
         }
 
 
         return new Response(json_encode($worlds), 200, array(
         return new Response(json_encode($worlds), 200, array(
@@ -44,13 +56,13 @@ class Controller_Bench extends Controller
 
 
         $fortunes[] = $runtimeFortune;
         $fortunes[] = $runtimeFortune;
 
 
-        usort($fortunes, function($left, $right) {
+        usort($fortunes, function ($left, $right) {
             if ($left->message === $right->message) {
             if ($left->message === $right->message) {
                 return 0;
                 return 0;
             } else if ($left->message > $right->message) {
             } else if ($left->message > $right->message) {
                 return 1;
                 return 1;
             } else {
             } else {
-                return -1;
+                return - 1;
             }
             }
         });
         });